X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fstm32f4-disco%2Fao_disco.c;h=ab3c03404d413678629f109db08b811a2c0ed75b;hb=0686a7b8aec524d81bda4c572549a3a068ce0eed;hp=efbed947a1d4c54267fcbfad8282a5807ddb4435;hpb=621d1529d6bc07a3f4bd27fb2d02d5b3161a3a6a;p=fw%2Faltos diff --git a/src/stm32f4-disco/ao_disco.c b/src/stm32f4-disco/ao_disco.c index efbed947..ab3c0340 100644 --- a/src/stm32f4-disco/ao_disco.c +++ b/src/stm32f4-disco/ao_disco.c @@ -13,25 +13,44 @@ */ #include +#include +#include -void main(void) +static void scheme_cmd() { + ao_scheme_read_eval_print(stdin, stdout, false); +} + +static const struct ao_cmds scheme_cmds[] = { + { scheme_cmd, "l\0Run scheme interpreter" }, + { 0, 0 } +}; + +int +_ao_scheme_getc(void) { - float x; - int r = 1; - int g = 0; + static uint8_t at_eol; + int c; - ao_clock_init(); + if (at_eol) { + ao_cmd_readline(ao_scheme_read_list ? "- " : "> "); + at_eol = 0; + } + c = (unsigned char) ao_cmd_lex(); + if (c == '\n') + at_eol = 1; + return c; +} +void main(void) +{ + ao_clock_init(); ao_timer_init(); + ao_task_init(); - ao_enable_output(LED_GREEN_PORT, LED_GREEN_PIN, 0); - ao_enable_output(LED_RED_PORT, LED_RED_PIN, 1); - for (;;) { - ao_gpio_set(LED_GREEN_PORT, LED_GREEN_PIN, g); - ao_gpio_set(LED_RED_PORT, LED_RED_PIN, r); - g ^= 1; - r ^= 1; - for (x = 0.0f; x < 100000.0f; x = x + 0.1f) - ao_arch_nop(); - } + ao_led_init(); + ao_usart_init(); + ao_usb_init(); + ao_cmd_init(); + ao_cmd_register(scheme_cmds); + ao_start_scheduler(); }