使用28035的CLA例程就行修改,添加了定时器0程序,若不启动定时器0,CLA程序能正常运行;若启动定时器0,即StartCpuTimer0();CLA程序就无法运行了,CLA的中断标志位一直为1,即Cla1Regs.MIRUN.bit.INT1恒为1,不知道定时器0与CLA相互影响引起的吗?
Susan Yang:您可以看一下安装文件内的文档
controlSUITE/device_support/f2803x/v130/doc/f2803x-FRM-DEV-PKG-UG.pdf
5.7.2 Benchmarking
The CLA does not support the clock function and therefore it is not possible to get a direct cycle count of a particular task. The user can configure the time base module on an ePWM to keep track of the execution time of a task.
使用28035的CLA例程就行修改,添加了定时器0程序,若不启动定时器0,CLA程序能正常运行;若启动定时器0,即StartCpuTimer0();CLA程序就无法运行了,CLA的中断标志位一直为1,即Cla1Regs.MIRUN.bit.INT1恒为1,不知道定时器0与CLA相互影响引起的吗?
Jie Li21:
回复 Susan Yang:
感谢你的回答,我的程序里面是将CLA与timer0作为两个独立的外设来使用,并非是timer0来触发CLA里面的任务;测试发现,启动timer1对CLA的正常进入无影响,启动timer0,软件触发CLA的任务1,CLA任务1的中断标识一直为1,不自动清零,关闭timer0后CLA就有正常了。
使用28035的CLA例程就行修改,添加了定时器0程序,若不启动定时器0,CLA程序能正常运行;若启动定时器0,即StartCpuTimer0();CLA程序就无法运行了,CLA的中断标志位一直为1,即Cla1Regs.MIRUN.bit.INT1恒为1,不知道定时器0与CLA相互影响引起的吗?
Susan Yang:
回复 Jie Li21:
请问您现在使用的具体是哪个例程?能否提供下timer0的相关代码?
使用28035的CLA例程就行修改,添加了定时器0程序,若不启动定时器0,CLA程序能正常运行;若启动定时器0,即StartCpuTimer0();CLA程序就无法运行了,CLA的中断标志位一直为1,即Cla1Regs.MIRUN.bit.INT1恒为1,不知道定时器0与CLA相互影响引起的吗?
Jie Li21:
回复 Susan Yang:
感谢你的回答,找到原因了,CLA寄存器的设置有先后顺序://步骤1EALLOW;Cla1Regs.MMEMCFG.bit.PROGE= 1;Cla1Regs.MCTL.bit.IACKE= 1;Cla1Regs.MMEMCFG.bit.RAM0E= 1;Cla1Regs.MMEMCFG.bit.RAM1E= 1;EDIS;//步骤2EALLOW;Cla1Regs.MPISRCSEL1.bit.PERINT1SEL= CLA_INT1_NONE;Cla1Regs.MIER.all= 0x00FF;EDIS;
我把步骤2放在步骤1之前了,引起的错误,要严格按照寄存器推荐的设置流程来,再次感谢。
使用28035的CLA例程就行修改,添加了定时器0程序,若不启动定时器0,CLA程序能正常运行;若启动定时器0,即StartCpuTimer0();CLA程序就无法运行了,CLA的中断标志位一直为1,即Cla1Regs.MIRUN.bit.INT1恒为1,不知道定时器0与CLA相互影响引起的吗?
Susan Yang:
回复 Jie Li21:
很高兴您能解决问题!谢谢分享