summaryrefslogtreecommitdiff
path: root/src/stm32f4-disco
diff options
context:
space:
mode:
Diffstat (limited to 'src/stm32f4-disco')
-rw-r--r--src/stm32f4-disco/Makefile5
-rw-r--r--src/stm32f4-disco/ao_disco.c41
-rw-r--r--src/stm32f4-disco/ao_pins.h29
3 files changed, 49 insertions, 26 deletions
diff --git a/src/stm32f4-disco/Makefile b/src/stm32f4-disco/Makefile
index 2d912b22..c970b879 100644
--- a/src/stm32f4-disco/Makefile
+++ b/src/stm32f4-disco/Makefile
@@ -3,7 +3,10 @@ include ../stm32f4/Makefile-raw.defs
ALTOS_SRC = \
ao_interrupt.c \
ao_panic.c \
- ao_timer.c
+ ao_timer.c \
+ ao_led.c \
+ ao_task.c \
+ ao_stdio.c
CFLAGS = $(STM32F4_CFLAGS)
diff --git a/src/stm32f4-disco/ao_disco.c b/src/stm32f4-disco/ao_disco.c
index efbed947..c6cdbd23 100644
--- a/src/stm32f4-disco/ao_disco.c
+++ b/src/stm32f4-disco/ao_disco.c
@@ -14,24 +14,35 @@
#include <ao.h>
-void main(void)
+static struct ao_task red_task;
+static struct ao_task green_task;
+
+static void
+red(void)
{
- float x;
- int r = 1;
- int g = 0;
+ for (;;) {
+ ao_led_toggle(LED_RED);
+ ao_delay(AO_MS_TO_TICKS(500));
+ }
+}
- ao_clock_init();
+static void
+green(void)
+{
+ for (;;) {
+ ao_led_toggle(LED_GREEN);
+ ao_delay(AO_MS_TO_TICKS(450));
+ }
+}
+void main(void)
+{
+ ao_clock_init();
ao_timer_init();
+ ao_led_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_add_task(&red_task, red, "red");
+ ao_add_task(&green_task, green, "green");
+ ao_start_scheduler();
}
diff --git a/src/stm32f4-disco/ao_pins.h b/src/stm32f4-disco/ao_pins.h
index c4dc5b4b..bbbc306e 100644
--- a/src/stm32f4-disco/ao_pins.h
+++ b/src/stm32f4-disco/ao_pins.h
@@ -14,16 +14,7 @@
#ifndef _AO_PINS_H_
#define _AO_PINS_H_
-#define HAS_BEEP 0
-
-#define B_USER_PORT (&stm_gpioa)
-#define B_USER_PIN 0
-
-#define LED_GREEN_PORT (&stm_gpioc)
-#define LED_GREEN_PIN 5
-#define LED_RED_PORT (&stm_gpioe)
-#define LED_RED_PIN 3
-
+/* Clock tree configuration */
#define AO_HSE 8000000 /* fed from st/link processor */
#define AO_HSE_BYPASS 1 /* no xtal, directly fed */
@@ -43,4 +34,22 @@
#define DEBUG_THE_CLOCK 1
+#define HAS_USB 0
+#define HAS_BEEP 0
+
+#define B_USER_PORT (&stm_gpioa)
+#define B_USER_PIN 0
+
+/* LEDs */
+
+#define HAS_LED 1
+
+#define LED_0_PORT (&stm_gpioc)
+#define LED_0_PIN 5
+#define LED_GREEN (1 << 0)
+
+#define LED_1_PORT (&stm_gpioe)
+#define LED_1_PIN 3
+#define LED_RED (1 << 1)
+
#endif /* _AO_PINS_H_ */