Microchip
直播中

赵静

8年用户 174经验值
私信 关注
[问答]

PIC24应用程序为什么会中断

对于控制伺服的PIC24应用程序,我在定时器2ISR中设置OC1RS寄存器。我试图以这种方式定义ISR:void_ISR_T2Inter.(void),并得到一些警告:main_P2.c:In function'_T2Inter.':elf-cc1.exe:warning: _T2Inter.PSV模型未指定用于'_T2Interru假定“auto_psv”可能影响latency所以我尝试以这种方式定义它,并且警告消失:void_.((inter.,no_auto_psv))_T2Inter.(void)我认为它在我的简单应用程序中没有区别,但是当我没有指定no_auto时,我发现了一些奇怪的行为Apvsv属性-它看起来像中断重复发生-好像它正在中断自己。当我使用NoYAutoPSV时,这确实消失了,但我想理解为什么。ISR代码为:void_ISR_T2Inter.(void)//以下版本将删除关于PSV(程序空间可见性)//void_.((inter.,no_auto_psv))_T2Inter.(void){OC1RS=._._p;//update.._T2IF=0;//clear中断标志}的编译器警告

回帖(3)

陈晨

2020-4-22 13:55:23
它希望您明确地表示AutoPSPV或NoiAuto Spv。如果你没有改变PSV寄存器,那么No是正确的。
举报

杨叶

2020-4-22 14:14:39
谢谢,但是如果这个属性被删除了,会发生什么?也就是说,如果默认是假设你正在改变它,那么在这种情况下它会做什么呢?我的理解是,它拯救了它,并恢复了它。我不明白为什么如果你不使用它,这会有所不同。
举报

李兆峰

2020-4-22 14:20:47
它会影响等待时间,是的,正如编译器所说的,代码应该是一样的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分