X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fnucleao-32%2Fao_nucleo.c;h=6b4cbaaed195d23687c6f670951fd35e96a0b53e;hb=41fed74c4cf139de6bf8f1879d370977785ad1f8;hp=cda889c6eef25c0eeb43d39a0bb19d36bb5e7707;hpb=e3d8ad6de7d2dfabe45a285b27f465ba68844f05;p=fw%2Faltos diff --git a/src/nucleao-32/ao_nucleo.c b/src/nucleao-32/ao_nucleo.c index cda889c6..6b4cbaae 100644 --- a/src/nucleao-32/ao_nucleo.c +++ b/src/nucleao-32/ao_nucleo.c @@ -13,36 +13,20 @@ */ #include +#include +#include -static uint16_t blink_delay, blink_running; - -static void blink(void) { - blink_running = 1; - while (blink_delay) { - ao_led_on(AO_LED_GREEN); - ao_delay(blink_delay); - ao_led_off(AO_LED_GREEN); - ao_delay(blink_delay); - } - blink_running = 0; - ao_wakeup(&blink_running); - ao_exit(); +static void lisp_cmd() { + ao_lisp_read_eval_print(); } -struct ao_task blink_task; - -static void blink_cmd() { - ao_cmd_decimal(); - blink_delay = ao_cmd_lex_i; - if (blink_delay && !blink_running) - ao_add_task(&blink_task, blink, "blink"); - if (!blink_delay) - while (blink_running) - ao_sleep(&blink_running); +static void beep() { + ao_beep_for(AO_BEEP_MID, AO_MS_TO_TICKS(200)); } static const struct ao_cmds blink_cmds[] = { - { blink_cmd, "b \0Blink the green LED" }, + { lisp_cmd, "l\0Run lisp interpreter" }, + { beep, "b\0Beep" }, { 0, 0 } }; @@ -55,6 +39,7 @@ void main(void) ao_dma_init(); ao_usb_init(); ao_serial_init(); + ao_beep_init(); ao_cmd_init(); ao_cmd_register(blink_cmds); ao_start_scheduler();