/* * mainloop.cpp * * Created on: Sep 11, 2019 * Author: abody */ #include #include "main.h" #include #include #define BORDER 60 #define BARWIDTH 2 void MainLoop() { uint16_t colors[] = { Ili9341Fsmc::ILI9341_RED, Ili9341Fsmc::ILI9341_ORANGE, Ili9341Fsmc::ILI9341_YELLOW, Ili9341Fsmc::ILI9341_GREENYELLOW, Ili9341Fsmc::ILI9341_GREEN, Ili9341Fsmc::ILI9341_CYAN, Ili9341Fsmc::ILI9341_BLUE, Ili9341Fsmc::ILI9341_MAGENTA }; static uint16_t const colorCount = sizeof(colors)/sizeof(colors[0]); uint32_t lastTick = 0; uint32_t tmpTick; uint32_t lastDiff; //LL_SYSTICK_EnableIT(); Ili9341Fsmc &lcd(Ili9341Fsmc::Init(nullptr, nullptr, DMA2, LL_DMA_STREAM_4, true)); lcd.FillRect(Ili9341Fsmc::ILI9341_WHITE); lcd.FillRect(BORDER, BORDER, lcd.Width()- BORDER * 2, lcd.Height()-BORDER * 2, Ili9341Fsmc::ILI9341_BLACK); uint16_t offset = 0; uint16_t maxidx = (lcd.Width() - BARWIDTH) / BARWIDTH; for(;;) { uint16_t idx = 0; while(idx <= maxidx ) { lcd.FillRect(idx * BARWIDTH, 0, BARWIDTH, lcd.Height(), colors[(idx+offset) % colorCount]); ++idx; } offset = (offset+1)%colorCount; tmpTick = HAL_GetTick(); lastDiff = tmpTick - lastTick; do tmpTick = HAL_GetTick(); while(tmpTick - lastTick < 20); lastTick = tmpTick; // LL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin); // LL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin); // LL_mDelay(25); } } MainLoop::MainLoop() { }