Hello. I have a question:
I have a hardware timer that is activated every 100 microseconds on the STM32 and I realized that the Systick is interrupted and not pended. Does the portDISABLE_INTERRUPTS function disable interrupts or be interrupted by a hardware (external or internal) interrupt?
The systick time is present on channel zero and the timer time is present on channel one.
That’s my code
void xPortSysTickHandler( void )
{
/* The SysTick runs at the lowest interrupt priority, so when this interrupt
executes all interrupts must be unmasked. There is therefore no need to
save and then restore the interrupt mask value as its value is already
known. */
portDISABLE_INTERRUPTS();
{
channel0ON();
/* Increment the RTOS tick. */
if( xTaskIncrementTick() != pdFALSE )
{
channel0OFF();
/* A context switch is required. Context switching is performed in
the PendSV interrupt. Pend the PendSV interrupt. */
portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT;
}else{
channel0OFF();
}
}
portENABLE_INTERRUPTS();
}
And that is my timer configuration (with internal clock 84MHz):
Thank you.