diff options
Diffstat (limited to 'firmware/src/main/main.c')
| -rw-r--r-- | firmware/src/main/main.c | 52 |
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); + // } + } +} |
