
Thread_lcd
Dependencies: BSP_DISCO_F746NG
Diff: main.cpp
- Revision:
- 0:0ae76e57b20e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Oct 13 16:23:00 2020 +0000 @@ -0,0 +1,74 @@ +#include "mbed.h" +#include "stm32746g_discovery_lcd.h" + + +DigitalOut led(LED1); +Thread thread0, thread1, thread2, thread3; + +void printText(uint16_t line, uint32_t Color, char text[]) +{ + BSP_LCD_SetBackColor(LCD_COLOR_BLUE); + BSP_LCD_SetTextColor(Color); + BSP_LCD_DisplayStringAt(0, LINE(line),(uint8_t *)text, CENTER_MODE); + ThisThread::sleep_for(500); + BSP_LCD_ClearStringLine(line); + ThisThread::sleep_for(500); +} + +void led_thread() +{ + while (true) { + led = !led; + ThisThread::sleep_for(100); + } +} + +void lcd_tread1() +{ + uint16_t line = 1; + uint32_t color = LCD_COLOR_WHITE; + char text[] = "Ahoj"; + while (true) { + printText(line, color, text); + } +} + +void lcd_tread2() +{ + while (true) { + BSP_LCD_SetTextColor(LCD_COLOR_LIGHTRED); + BSP_LCD_FillCircle(100, 200, 36); + ThisThread::sleep_for(400); + BSP_LCD_SetTextColor(LCD_COLOR_BLUE); + BSP_LCD_FillCircle(100, 200, 36); + ThisThread::sleep_for(400); + } +} + +void lcd_tread3() +{ + while (true) { + BSP_LCD_SetTextColor(LCD_COLOR_LIGHTGREEN); + BSP_LCD_FillRect(250, 166, 70,70); + ThisThread::sleep_for(800); + BSP_LCD_SetTextColor(LCD_COLOR_BLUE); + BSP_LCD_FillRect(250, 166, 70,70); + ThisThread::sleep_for(800); + } +} + +int main() +{ + BSP_LCD_Init(); + BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS); + BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER); + BSP_LCD_Clear(LCD_COLOR_BLUE); + BSP_LCD_SetFont(&LCD_DEFAULT_FONT); + + while (1){ + thread0.start(led_thread); + thread1.start(lcd_tread1); + thread2.start(lcd_tread2); + thread3.start(lcd_tread3); + } +} \ No newline at end of file