The unified diff between revisions [961b04dd..] and [253c6510..] is displayed below. It can also be downloaded as a raw diff.
This diff has been restricted to the following files: 'main.c'
# # old_revision [961b04ddb07ba2b5dd6bccfa66a03e442e40d8f0] # new_revision [253c65100e2208e0b8c93178896f5aab89e4ec0b] # # patch "main.c" # from [f3f04a92cb8f9ba8fdecd0b2fd95773011c1e076] # to [d5ad069a51eff072171a593f4f480b1e8aab11bb] # ============================================================ --- main.c f3f04a92cb8f9ba8fdecd0b2fd95773011c1e076 +++ main.c d5ad069a51eff072171a593f4f480b1e8aab11bb @@ -4,13 +4,22 @@ #include "timer.h" #include "uart.h" #include "interrupt.h" +#include "event.h" #define PINSEL0 (*((volatile unsigned char *) 0xE002C000)) +#define FP0XDIR (*((volatile unsigned int *) 0x3FFFC000)) +#define FP0XVAL (*((volatile unsigned int *) 0x3FFFC014)) +#define SCS (*((volatile unsigned int *) 0xe01fc1a0)) + + void init_pins(void) { PINSEL0 = 0x00000055; /* P0.0 and P0.1 assigned to UART */ /* P0.2 and P0.3 assigned to I2C */ + SCS = 1; + FP0XDIR = 0x04000000; /* P0.26 is an output */ + FP0XVAL = 0x0; } void reply(char *str) @@ -152,6 +161,7 @@ int main(void) { int main(void) { int i; + init_interrupt(); init_uart(); init_i2c(); @@ -162,7 +172,8 @@ int main(void) { while (1) { char c; putstr("prompt> "); - c = getch(); + while (!getch(&c)) + FP0XVAL ^= 0x04000000; if (c == 0x0a) continue; putch(c); @@ -185,8 +196,6 @@ int main(void) { reply("Help is not available. Try a psychiatrist."); break; case 'T': - putstr("I2C status was: "); - puthex(i2cstat); putstr(" I2C status is: "); puthex(i2c_statreg()); reply("."); @@ -194,18 +203,6 @@ int main(void) { puthex(i2c_conreg()); reply("."); break; - case 'S': - putstr("Sending START... "); - if (i2c_send_start()) - reply("OK"); - else - reply("FAIL"); - break; - case 'O': - putstr("Sending STOP... "); - i2c_send_stop(); - reply("sent"); - break; case 'I': putstr("Initialising WMP... "); if (wmp_init()) @@ -260,6 +257,10 @@ int main(void) { timer_set_period(10000*TIMER_MS); reply("done"); break; + case 'E': + event_dispatch(); + reply("done"); + break; default: reply("Unrecognised command."); break;