TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F2812: 如何手动开启一个PEI中断

Part Number:TMS320F2812

如XINT2中断, 目前可以通定义GPIO引脚为XINT2(INT1.5)功能,并能成功通过引脚置位的方式来中断。

如果想在程序某处, 在GPIO引脚电平不改变的情况下想通过程序的方式增加一次中断,

1. 怎么实现?可以用TARP或INTR指令吗?具体怎么用?

2. 如果用了TARP或INTR指令,那么在中断程序中EINT后,能被高优先级中断程序中断吗?

Yale Li:

1.1. 可以使用INTR来软件触发中断,相关的助记符句法在spru127c_TMS320C20x User's Guide第261页:

不建议使用TRAP,TRAP有自己专门的中断向量,一般被TI用来处理错误;

1.2. 既然是通过GPIO触发的,试着通过改写相应的GPIO结果寄存器来触发中断;

1.3. 其实换个角度往简单里想,软件触发中断的话,程序都执行到触发这里了,直接把代码加在这里不就好了?

2. C2000器件默认是不支持中断嵌套的。

,

fw yang:

Yale Li said:其实换个角度往简单里想,软件触发中断的话,程序都执行到触发这里了,直接把代码加在这里不就好了?

处于中间优先级, 需要被高优先级中断, 同时比其他任务优先级又要高.

高优先级的任务运行一段时间后就运行此任务,其他任务挂起。如果把此任务放在最高优先级程序里,会导致最高优先级程序来不及;如果把此程序放在低优先级里,会导致不能及时跟上。

Yale Li said:1.2. 既然是通过GPIO触发的,试着通过改写相应的GPIO结果寄存器来触发中断;

GPIO口已经被配置XINT2,不能再操作了吧,当然可以通过把此GPIO连到基他GPIO上再来操作基他GPIO。

,

Yale Li:

fw yang said:

处于中间优先级, 需要被高优先级中断, 同时比其他任务优先级又要高.

高优先级的任务运行一段时间后就运行此任务,其他任务挂起。如果把此任务放在最高优先级程序里,会导致最高优先级程序来不及;如果把此程序放在低优先级里,会导致不能及时跟上。

好的,我明白了。可以使用方法1.1。有关C2000中断嵌套,请参考:

https://e2echina.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/82160/c2000-mcu

https://software-dl.ti.com/C2000/docs/c28x_interrupt_faq/html/index.html#nesting

fw yang said:GPIO口已经被配置XINT2,不能再操作了吧,

第二代三代器件可以,不冲突。但是我没有在F2812上试过。这个问题的关键也更在于外部连接对于引脚状态的影响。

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F2812: 如何手动开启一个PEI中断
分享到: 更多 (0)