void vApplicationStackOverflowHook( xTaskHandle pxTask, signed char *pcTaskName ) { /* The stack space has been execeeded for a task, considering allocating more. */ taskDISABLE_INTERRUPTS(); for( ;; ) { Backlight_Write(0); CyDelay(500); Backlight_Write(1); CyDelay(500); } }
void vApplicationMallocFailedHook( void ) { /* The heap space has been execeeded. */ taskDISABLE_INTERRUPTS(); for( ;; ){ Backlight_Write(0); CyDelay(2000); Backlight_Write(1); CyDelay(2000); } }
void main() { settings = &settings_data; CyGlobalIntEnable; Backlight_Write(1); disp_reset_Write(0); CyDelayUs(10); disp_reset_Write(1); CyDelayUs(10); Display_Start(); Display_SetContrast(settings->lcd_contrast); #ifdef USE_SPLASHSCREEN load_splashscreen(); #endif IDAC_High_Start(); IDAC_Low_Start(); set_output_mode(OUTPUT_MODE_FEEDBACK); start_adc(); setup(); xTaskCreate(vTaskUI, (signed portCHAR *) "UI", 178, NULL, tskIDLE_PRIORITY + 2, &ui_task); xTaskCreate(vTaskComms, (signed portCHAR *) "UART", 141, NULL, tskIDLE_PRIORITY + 2, &comms_task); prvHardwareSetup(); vTaskStartScheduler(); }
void main() { CyGlobalIntEnable; #if USE_WATCHDOG // Enable watchdog timer for every 2 seconds CySysWdtWriteMode(0, CY_SYS_WDT_MODE_RESET); CySysWdtWriteMatch(0, 0xFFFF); CySysWdtEnable(CY_SYS_WDT_COUNTER0_MASK); #endif if(settings->settings_version < default_settings.settings_version) factory_reset(); Backlight_Write(1); disp_reset_Write(0); CyDelayUs(10); disp_reset_Write(1); CyDelayUs(10); Display_Start(); Display_SetContrast(settings->lcd_contrast); #ifdef USE_SPLASHSCREEN load_splashscreen(); #endif IDAC_High_Start(); IDAC_Low_Start(); state.calibrating = 0; set_current(0); set_output_mode(OUTPUT_MODE_FEEDBACK); start_adc(); setup(); //Create the two tasks xTaskCreate(vTaskUI, (signed portCHAR *) "UI", 178, NULL, tskIDLE_PRIORITY + 2, &ui_task); xTaskCreate(vTaskComms, (signed portCHAR *) "UART", 180, NULL, tskIDLE_PRIORITY + 2, &comms_task); prvHardwareSetup(); vTaskStartScheduler(); }