The unified diff between revisions [1dfe3b7e..] and [23a3e9a5..] 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 [1dfe3b7eee76f3c8aea3b33932857682ee17701c] # new_revision [23a3e9a50b4034343e3bd217d2c225dcaec064dd] # # patch "main.c" # from [cc6bdc935c17a517544beb8e177fc1093fff5249] # to [e1a823b4962f3e8dc43b519a1f57745854ae6689] # ============================================================ --- main.c cc6bdc935c17a517544beb8e177fc1093fff5249 +++ main.c e1a823b4962f3e8dc43b519a1f57745854ae6689 @@ -159,20 +159,44 @@ void average_sample(void) putstr(")\r\n"); } -int main(void) { - int i; +void timer_event_handler(void) +{ + wmp_start_sample(); +} +void menu_handler(void); + +int main(void) { init_interrupt(); init_uart(); init_i2c(); init_pins(); init_timer(); + + event_register(EVENT_UART_INPUT, menu_handler); + + event_register(EVENT_I2C_COMPLETE, wmp_event_handler); + + event_register(EVENT_TIMER, timer_event_handler); + putstr("Your entire life has been a mathematical error... a mathematical error I'm about to correct!\r\n"); + putstr("prompt> "); + while (1) { - char c; - putstr("prompt> "); - c = getch(); + FP0XVAL ^= 0x04000000; + event_dispatch(); + } + + return 0; +} + +void menu_handler(void) +{ + int i; + char c; + + while (getch(&c)) { if (c == 0x0a) continue; putch(c); @@ -253,18 +277,16 @@ int main(void) { break; case 'P': putstr("Initialising timer... "); - timer_set_period(10000*TIMER_MS); + /* We want a 100Hz loop but two samples per iteration. + * So, we go for 200Hz. */ + timer_set_period(5*TIMER_MS); reply("done"); + wmp_start_zero(); break; - case 'E': - event_dispatch(); - reply("done"); - break; default: reply("Unrecognised command."); break; } + putstr("prompt> "); } - - return 0; }