X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fnucleao-32%2Fao_nucleo.c;h=6b4cbaaed195d23687c6f670951fd35e96a0b53e;hb=202d556241d56ec4a27f202575d6945dc09f9e03;hp=113e2399aaebc7fe962186a8a19469835960c76c;hpb=d2408e72d1e0d3459918601712b09860ab17e200;p=fw%2Faltos diff --git a/src/nucleao-32/ao_nucleo.c b/src/nucleao-32/ao_nucleo.c index 113e2399..6b4cbaae 100644 --- a/src/nucleao-32/ao_nucleo.c +++ b/src/nucleao-32/ao_nucleo.c @@ -14,45 +14,22 @@ #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(); -} - -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); -} +#include static void lisp_cmd() { ao_lisp_read_eval_print(); } +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 } }; - void main(void) { ao_led_init(LEDS_AVAILABLE); @@ -62,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();