#include #include #include "InovaLedDisplay.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "esp_log.h" #define BLACK 0x0000 #define RED 0xF800 #define GREEN 0x07E0 #define ORANGE 0xFFE0 #define PIN_NUM_R0 13 // MISO #define PIN_NUM_G0 11 // MOSI #define PIN_NUM_R1 14 // QUADWP #define PIN_NUM_G1 9 // QUADHD #define PIN_NUM_R2 33 // data4 #define PIN_NUM_G2 35 // data5 #define PIN_NUM_RD 37 // data6 #define PIN_NUM_GD 38 // data7 #define PIN_NUM_CLK 12 #define PIN_NUM_R_LATCH 16 #define PIN_NUM_R_CLK 17 #define PIN_NUM_R_ADDR_0 4 #define PIN_NUM_R_ADDR_1 5 #define PIN_NUM_R_ADDR_2 6 #define TAG "led_display" #define STACK_SIZE 2000 extern "C" void runDisplayTask(void* taskParams) { InovaLedDisplay* display = (InovaLedDisplay*) taskParams; display->runDisplay(); } extern "C" void app_main(void) { InovaLedDisplay display = InovaLedDisplay(PIN_NUM_R0, PIN_NUM_G0, PIN_NUM_R1, PIN_NUM_G1, PIN_NUM_R2, PIN_NUM_G2, PIN_NUM_CLK, PIN_NUM_R_LATCH, PIN_NUM_R_CLK, PIN_NUM_R_ADDR_0, PIN_NUM_R_ADDR_1, PIN_NUM_R_ADDR_2); TaskHandle_t taskHandle; xTaskCreate(runDisplayTask, "updateDisplay", STACK_SIZE, &display, tskIDLE_PRIORITY + 1, &taskHandle); display.fillScreen(0); display.setTextColor(RED); display.setTextWrap(false); display.setCursor(0, 0); display.print("Line 0 0123456789"); display.setCursor(0, 8); display.print("Line 1 0123456789"); display.setCursor(0, 16); display.print("Line 2 0123456789"); display.swapBuffer(); /* int j = display.width(); int color = 1; String hello = "Hello World!! 0123456789"; int hello_length = hello.length(); int min_x = hello_length * -6; while(true) { display.fillScreen(0); display.setCursor(j, 0); display.print(hello); display.swapBuffer(); if(--j == min_x) { j = display.width(); if(++color > 3) { color = 1; } } vTaskDelay(50 / portTICK_PERIOD_MS); } */ while(true) { vTaskDelay(50 / portTICK_PERIOD_MS); } }