Thread 中讨论的其他器件:SYSBIOS
工具/软件:TI-RTOS
尊敬的:
我们正在项目中使用 Piccolo F28069 DSP,该固件平台是 TI SYS/BIOS–版本6.50。 ADC ISR 为35KHz、每20ms 将有一个事件发布或从 ADC ISR 到任务的 Swi 发布。
我发现、有时 Event_post ()或 Swi_post ()需要很长时间、这会影响正常的 ADC ISR 频率- 35KHz。 在这种情况下,它将丢失一个 ADC ISR。 如果从任务中布置事件或 Swi、似乎没有发生这样的问题。
在 坏情况下,例如 Event_post ()花费45us,ADC ISR 运行60us,Swi_post ()花费56us,ADC ISR 运行70us,比正常时间更长。
测试代码如下:
#pragma CODE_SECTION ("ramfuncs");
_interrupt void ADC_ISR (void)
{
GPIO_ISR_HIGH ();
//其他代码。 。 。 。 。 。
if (ac_zero_accacc2000)// 20ms 周期
{
GPIO_POST_HIGH ();
EVENT_POST (task_event_PFC、EVENT_ID_PFC_UTILITYZERO);
GPIO_POST_LOW();
}
//其他代码。 。 。 。 。 。
GPIO_ISR_LOW ();
AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1; //清除 ADCINT1标志为下一个 SOC 重新初始化
PieCtrlRegs.PIEACX.ALL = PIEACK_Group1;//清除 INT1的 PIE 确认位
}
请帮您解决此问题吗? 谢谢!
陈德芳