Question
FreeRTOS Timer Callback is not firing [CMSIS_RTOS_V2]
osTimerId_t FreertosTimerHandle;
const osTimerAttr_t FreertosTimer_attr =
{
.name = "FreertosTimer_LED"
};
void RPS_print_console_Thread(void *argument)
{
/* Initialize watchdog Timer */
IWDG_Init();
StartLEDTimer();
while(1)
{
/* Refresh watchdog periodically */
IWDG_Refresh();
}
}
void StartLEDTimer(void)
{
FreertosTimerHandle = osTimerNew(Fire_LED_Toggle, osTimerOnce, NULL, &FreertosTimer_attr);
if (FreertosTimerHandle != NULL)
{
if (osTimerStart(FreertosTimerHandle, 5000) == osOK)
{
printf("LED timer started\n");
}
else
{
printf("Failed to start LED timer\n");
}
}
else
{
printf("Failed to create LED timer\n");
}
}
void Fire_LED_Toggle(void *argument)
{
printf("Timer callback fired!\n");
HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, SET);
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, SET);
HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, SET);
HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, SET);
}