原理很簡單。arduino的loop函數都是執行在cpu核心1.使用freertos分配刷屏任務到核心0.
void refresh_lcd(void *pvParameters){//新加入的(void)pvParameters;for(;;){ TERN(DWIN_CREALITY_LCD, DWIN_Update(), ui.update()); //在loop idle()中剪切這個到這個地方vTaskDelay(5);}
}void setup() {
setCpuFrequencyMhz(240);//新加入的 #ifdef FASTIO_INIT FASTIO_INIT();/*******/
marlin_state = MF_RUNNING;xTaskCreatePinnedToCore(//新加入的 refresh_lcd,
"sys_thread", 1024 * 64, NULL, 3, NULL, 0); SETUP_LOG("setup() completed.");}
|