This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

请问TMS320F28335的捕获端口如何实现对上升沿脉冲和下降沿脉冲到来时都可以触发捕获中断

Other Parts Discussed in Thread: TMS320F28335

有一光耦编码盘会输出如图所示的方波,现在想在上升沿(A点)到来时,能触发捕获中断,从而获取低电平时间TL,并标记此时发生了电平跳变,在下降沿(B点)到来时,也能触发捕获中断,从而获取高电平时间TH,并标记此时发生了电平跳变。好像TMS320F28335的同一个捕获端口只能使用一个捕获事件来触发捕获中断,对于这种有两个捕获事件的,请问用什么办法能解决这个问题?只要能解决正确获取高低电平时间TH和TL,并标记发生的电平跳变,请问还可以有其他策略吗?

  • 有一光耦编码盘会输出如图所示的方波,现在想在上升沿(A点)到来时,能触发捕获中断,从而获取低电平时间TL,并标记此时发生了电平跳变,在下降沿(B点)到来时,也能触发捕获中断,从而获取高电平时间TH,并标记此时发生了电平跳变。好像TMS320F28335的同一个捕获端口只能使用一个捕获事件来触发捕获中断,对于这种有两个捕获事件的,请问用什么办法能解决这个问题?只要能解决正确获取高低电平时间TH和TL,并标记发生的电平跳变,请问还可以有其他策略吗?

    Eric:

    你倒是可以利用这个中断寄存器able 9. ECAP Interrupt Enable Register (ECEINT) Field Description 

    这个寄存器可以使能多个事件都产生中断。有一点要注意的是,中断里尽量少代码,这样避免处理不过来。

  • 捕获一般都是用于计算周期吧      也就是一直捕获上升沿    两次捕获的值做差值    就算周期 

    两种沿捕获  是不是要切换配置啊   能不能赶上?

  • 好的,谢谢,我还有两个个疑问请教下。下面是我的CAP3初始化程序。

    1

    对ECap3Regs.ECEINT.bit.CEVTx(X=1,2,3,4)进行操作时,只有单独写ECap3Regs.ECEINT.bit.CEVT4=1时,才会在每个捕获事件到来时都会进入捕获中断,如果写ECap3Regs.ECEINT.bit.CEVT4=1;ECap3Regs.ECEINT.bit.CEVT3=1;ECap3Regs.ECEINT.bit.CEVT2=1;ECap3Regs.ECEINT.bit.CEVT1=1,则只有捕获事件1到来时才会进入捕获中断,按照数据手册应该是每个捕获事件都要单独使能才行啊,所以没有想明白。

    第二个疑惑是:当输入的脉冲宽度(高电平或低电平)小于600个系统时钟脉冲时,事件1(CAP1)捕获的值会不正确,但是其他事件捕获值都是正确的,如果是大约大于600个系统时钟脉冲时,则所有时间捕获值都完全正确,请问这是什么原因?谢谢!

  • 请问你想通了没有?我现在也想用dsp28335的ecap捕获上升沿时产生中断,捕获到下降沿时产生另一个中断。
  • 木有想通哦,请问你很好的解决了没?
  • 木有想通哦,请问你很好的解决了没?