diff options
| author | Louis Burda <quent.burda@gmail.com> | 2024-09-21 16:16:13 +0200 |
|---|---|---|
| committer | Louis Burda <quent.burda@gmail.com> | 2024-09-21 16:16:13 +0200 |
| commit | 98ca9169f2518796ef62bba55f2e58623d076b37 (patch) | |
| tree | e982e614ea5774c2a2959758a16f934e97b3c269 /firmware/src | |
| parent | cce1d1606b87f572cfe5bb7b740d30d416685b2c (diff) | |
| download | desk-andon-98ca9169f2518796ef62bba55f2e58623d076b37.tar.gz desk-andon-98ca9169f2518796ef62bba55f2e58623d076b37.zip | |
Add v-cut separated dual usb board
Diffstat (limited to 'firmware/src')
| m--------- | firmware/src/components/esp32-ssd1306 | 0 | ||||
| -rw-r--r-- | firmware/src/dependencies.lock | 10 | ||||
| -rw-r--r-- | firmware/src/main/CMakeLists.txt | 5 | ||||
| -rw-r--r-- | firmware/src/main/hello_world_main.c | 21 | ||||
| -rw-r--r-- | firmware/src/main/idf_component.yml | 16 | ||||
| -rw-r--r-- | firmware/src/main/main.c | 52 |
6 files changed, 81 insertions, 23 deletions
diff --git a/firmware/src/components/esp32-ssd1306 b/firmware/src/components/esp32-ssd1306 new file mode 160000 +Subproject b94130e71b44c4b60f396f611b9e73d48cdd3e9 diff --git a/firmware/src/dependencies.lock b/firmware/src/dependencies.lock new file mode 100644 index 0000000..946bddb --- /dev/null +++ b/firmware/src/dependencies.lock @@ -0,0 +1,10 @@ +dependencies: + idf: + source: + type: idf + version: 5.3.0 +direct_dependencies: +- idf +manifest_hash: e44bf68eca6b7b264ddae08cd014cd3294c0473230381b6d6f88ed18ec879038 +target: esp32c3 +version: 2.0.0 diff --git a/firmware/src/main/CMakeLists.txt b/firmware/src/main/CMakeLists.txt index 07686dc..55218ea 100644 --- a/firmware/src/main/CMakeLists.txt +++ b/firmware/src/main/CMakeLists.txt @@ -1,2 +1,3 @@ -idf_component_register(SRCS "hello_world_main.c" - INCLUDE_DIRS "") +idf_component_register(SRCS "main.c" + INCLUDE_DIRS "" + REQUIRES "esp32-ssd1306") diff --git a/firmware/src/main/hello_world_main.c b/firmware/src/main/hello_world_main.c deleted file mode 100644 index 2305439..0000000 --- a/firmware/src/main/hello_world_main.c +++ /dev/null @@ -1,21 +0,0 @@ -#include "freertos/FreeRTOS.h" -#include "freertos/task.h" -#include "driver/gpio.h" -#include "hal/gpio_types.h" - -#include <stdio.h> - -void app_main(void) -{ - gpio_reset_pin(5); - gpio_set_direction(5, GPIO_MODE_OUTPUT_OD); - int i = 0; - while (1) { - printf("Hello world! %i\n", ++i); - fflush(stdout); - gpio_set_level(5, 1); - vTaskDelay(1000 / portTICK_PERIOD_MS); - gpio_set_level(5, 0); - vTaskDelay(1000 / portTICK_PERIOD_MS); - } -} diff --git a/firmware/src/main/idf_component.yml b/firmware/src/main/idf_component.yml new file mode 100644 index 0000000..f17b35f --- /dev/null +++ b/firmware/src/main/idf_component.yml @@ -0,0 +1,16 @@ +## IDF Component Manager Manifest File +dependencies: + ## Required IDF version + idf: + version: ">=4.1.0" + # # Put list of dependencies here + # # For components maintained by Espressif: + # component: "~1.0.0" + # # For 3rd party components: + # username/component: ">=1.0.0,<2.0.0" + # username2/component2: + # version: "~1.0.0" + # # For transient dependencies `public` flag can be set. + # # `public` flag doesn't have an effect dependencies of the `main` component. + # # All dependencies of `main` are public by default. + # public: true 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); + // } + } +} |
