Useful for single-threaded applications, like lambdakey
Signed-off-by: Keith Packard <keithp@keithp.com>
void
ao_cmd_init(void);
+void
+ao_cmd(void);
+
#if HAS_CMD_FILTER
/*
* Provided by an external module to filter raw command lines
}
#endif
+#if HAS_TASK
__xdata struct ao_task ao_cmd_task;
+#endif
__code struct ao_cmds ao_base_cmds[] = {
{ help, "?\0Help" },
-#if HAS_TASK_INFO
+#if HAS_TASK_INFO && HAS_TASK
{ ao_task_info, "T\0Tasks" },
#endif
{ echo, "E <0 off, 1 on>\0Echo" },
ao_cmd_init(void)
{
ao_cmd_register(&ao_base_cmds[0]);
+#if HAS_TASK
ao_add_task(&ao_cmd_task, ao_cmd, "cmd");
+#endif
}
return 0;
}
+#if HAS_AO_DELAY
+void
+ao_delay(uint16_t ticks)
+{
+ AO_TICK_TYPE target;
+
+ if (!ticks)
+ ticks = 1;
+ target = ao_tick_count + ticks;
+ do {
+ ao_sleep(&ao_time);
+ } while ((int16_t) (target - ao_tick_count) > 0);
+}
+#endif
+
void
ao_wakeup(__xdata void *wchan)
{
#define _AO_PINS_H_
#define HAS_TASK 0
+#define HAS_AO_DELAY 1
#define LED_PORT_ENABLE STM_RCC_AHBENR_IOPBEN
#define LED_PORT (&stm_gpiob)