#include #include #include "InovaLedDisplay.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "esp_log.h" #define CHAR_HEIGHT 8 #define CHAR_WIDTH 8 #define RED 1 #define GREEN 2 #define ORANGE 3 #define PIN_NUM_MISO 12 #define PIN_NUM_MOSI 13 #define PIN_NUM_CLK 14 #define PIN_NUM_CS 15 #define PIN_NUM_R_LATCH 16 #define PIN_NUM_R_CLK 17 #define PIN_NUM_R_ADDR_0 5 #define PIN_NUM_R_ADDR_1 18 #define PIN_NUM_R_ADDR_2 19 #define TAG "led_display" #define STACK_SIZE 2000 /* extern "C" void drawCharAtPosition(char character, int x_start, int y_start, uint16_t color) { */ /* uint8_t cur_char_row; */ /* for(int y = y_start; (y - y_start) < CHAR_HEIGHT && y < NUM_ROW; y++) { */ /* cur_char_row = atascii_font[(uint8_t) character][y - y_start]; */ /* for(int x = x_start; (x - x_start) < CHAR_WIDTH && x < NUM_COL; x++) { */ /* if(x >= 0) { */ /* if((0b10000000 >> (x - x_start)) & cur_char_row) { */ /* setPixel(x, y, color); */ /* } */ /* else { */ /* setPixel(x, y, 0); */ /* } */ /* } */ /* } */ /* } */ /* } */ extern "C" void runDisplayTask(void* taskParams) { InovaLedDisplay* display = (InovaLedDisplay*) taskParams; display->runDisplay(); } extern "C" void app_main(void) { InovaLedDisplay display = InovaLedDisplay(PIN_NUM_MISO, PIN_NUM_MOSI, PIN_NUM_CLK, PIN_NUM_CS, PIN_NUM_R_LATCH, PIN_NUM_R_CLK, PIN_NUM_R_ADDR_0, PIN_NUM_R_ADDR_1, PIN_NUM_R_ADDR_2); display.fillScreen(0); display.setCursor(0, 0); display.setTextColor(2); display.setTextWrap(false); display.print("Adafruit GFX 0123456789"); TaskHandle_t taskHandle; xTaskCreate(runDisplayTask, "updateDisplay", STACK_SIZE, &display, tskIDLE_PRIORITY, &taskHandle); //runDisplayTask(&display); //while(true) { // vTaskDelay(100 / portTICK_PERIOD_MS); //} 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); if(--j == min_x) { j = display.width(); if(++color > 3) { color = 1; } } vTaskDelay(50 / portTICK_PERIOD_MS); } }