summaryrefslogtreecommitdiffstats
path: root/firmware/src/main/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/src/main/main.c')
-rw-r--r--firmware/src/main/main.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/firmware/src/main/main.c b/firmware/src/main/main.c
new file mode 100644
index 0000000..034c844
--- /dev/null
+++ b/firmware/src/main/main.c
@@ -0,0 +1,52 @@
+#include "freertos/FreeRTOS.h"
+#include "freertos/task.h"
+#include "driver/gpio.h"
+#include "hal/gpio_types.h"
+#include "ssd1306.h"
+
+#include <stdio.h>
+
+enum Lane {
+ RED,
+ ORANGE,
+ GREEN,
+ BLUE,
+ WHITE,
+ SPEAKER,
+ PIN_COUNT
+};
+
+const static int ANDON_PINS[PIN_COUNT] = { 10, 3, 7, 6, 5, 4 };
+
+void app_main(void)
+{
+ SSD1306_t display;
+ int i, tick = 0;
+
+ ssd1306_init(&display);
+ ssd1306_clear_screen(&display, false);
+ ssd1306_display_text(&display, 0, "testing", 7, false);
+
+ for (i = 0; i < PIN_COUNT; i++) {
+ gpio_reset_pin(ANDON_PINS[i]);
+ gpio_set_level(ANDON_PINS[i], 1);
+ gpio_set_direction(ANDON_PINS[i], GPIO_MODE_OUTPUT_OD);
+ }
+
+ while (1) {
+ printf("Tick %i\n", ++tick);
+ fflush(stdout);
+ for (i = 0; i < PIN_COUNT; i++) {
+ gpio_set_level(ANDON_PINS[i], 0);
+ vTaskDelay(1000 / portTICK_PERIOD_MS);
+ gpio_set_level(ANDON_PINS[i], 1);
+ }
+ // for (i = 0; i < PIN_COUNT; i++) {
+ // gpio_set_level(ANDON_PINS[i], 0);
+ // }
+ // vTaskDelay(1000 / portTICK_PERIOD_MS);
+ // for (i = 0; i < PIN_COUNT; i++) {
+ // gpio_set_level(ANDON_PINS[i], 1);
+ // }
+ }
+}