summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lpc/ao_led_lpc.c5
-rw-r--r--src/lpc/ao_timer_lpc.c2
-rw-r--r--src/lpcxpresso/ao_demo.c26
3 files changed, 26 insertions, 7 deletions
diff --git a/src/lpc/ao_led_lpc.c b/src/lpc/ao_led_lpc.c
index 098dad6b..7bef51ba 100644
--- a/src/lpc/ao_led_lpc.c
+++ b/src/lpc/ao_led_lpc.c
@@ -22,13 +22,13 @@ __pdata uint16_t ao_led_enable;
void
ao_led_on(uint16_t colors)
{
- lpc_gpio.pin[LED_PORT] = 0xffffffff;
+ lpc_gpio.pin[LED_PORT] |= colors;
}
void
ao_led_off(uint16_t colors)
{
- lpc_gpio.pin[LED_PORT] = 0;
+ lpc_gpio.pin[LED_PORT] &= ~colors;
}
void
@@ -44,6 +44,7 @@ ao_led_set(uint16_t colors)
void
ao_led_toggle(uint16_t colors)
{
+ lpc_gpio.pin[LED_PORT] ^= colors;
}
void
diff --git a/src/lpc/ao_timer_lpc.c b/src/lpc/ao_timer_lpc.c
index aa796acf..51e82525 100644
--- a/src/lpc/ao_timer_lpc.c
+++ b/src/lpc/ao_timer_lpc.c
@@ -61,7 +61,7 @@ ao_timer_set_adc_interval(uint8_t interval)
}
#endif
-#define SYSTICK_RELOAD ((AO_LPC_CLKOUT / 2) / 100 - 1)
+#define SYSTICK_RELOAD ((AO_LPC_SYSCLK / 2) / 100 - 1)
/* Initialize our 100Hz clock */
void
diff --git a/src/lpcxpresso/ao_demo.c b/src/lpcxpresso/ao_demo.c
index bb8402f7..56fef706 100644
--- a/src/lpcxpresso/ao_demo.c
+++ b/src/lpcxpresso/ao_demo.c
@@ -17,6 +17,15 @@
#include "ao.h"
+struct ao_task demo_task;
+
+static void demo(void) {
+ for (;;) {
+ ao_delay(100);
+ ao_led_toggle(AO_LED_RED);
+ }
+}
+
int
main(void)
{
@@ -24,13 +33,22 @@ main(void)
ao_led_init(LEDS_AVAILABLE);
ao_led_on(AO_LED_RED);
ao_clock_init();
+ ao_timer_init();
+
+ ao_task_init();
+
+ ao_add_task(&demo_task, demo, "demo");
+
+ ao_start_scheduler();
for (;;) {
ao_led_off(AO_LED_RED);
- for (i = 0; i < 100000; i++)
- ao_arch_nop();
+ for (;;)
+ if (ao_tick_count & 1)
+ break;
ao_led_on(AO_LED_RED);
- for (i = 0; i < 100000; i++)
- ao_arch_nop();
+ for (;;)
+ if (!(ao_tick_count & 1))
+ break;
}
}