有一光耦编码盘会输出如图所示的方波,现在想在上升沿(A点)到来时,能触发捕获中断,从而获取低电平时间TL,并标记此时发生了电平跳变,在下降沿(B点)到来时,也能触发捕获中断,从而获取高电平时间TH,并标记此时发生了电平跳变。好像TMS320F28335的同一个捕获端口只能使用一个捕获事件来触发捕获中断,对于这种有两个捕获事件的,请问用什么办法能解决这个问题?只要能解决正确获取高低电平时间TH和TL,并标记发生的电平跳变,请问还可以有其他策略吗?
Eric Ma:
有一光耦编码盘会输出如图所示的方波,现在想在上升沿(A点)到来时,能触发捕获中断,从而获取低电平时间TL,并标记此时发生了电平跳变,在下降沿(B点)到来时,也能触发捕获中断,从而获取高电平时间TH,并标记此时发生了电平跳变。好像TMS320F28335的同一个捕获端口只能使用一个捕获事件来触发捕获中断,对于这种有两个捕获事件的,请问用什么办法能解决这个问题?只要能解决正确获取高低电平时间TH和TL,并标记发生的电平跳变,请问还可以有其他策略吗?
Eric:
你倒是可以利用这个中断寄存器able 9. ECAP Interrupt Enable Register (ECEINT) Field Description
这个寄存器可以使能多个事件都产生中断。有一点要注意的是,中断里尽量少代码,这样避免处理不过来。
有一光耦编码盘会输出如图所示的方波,现在想在上升沿(A点)到来时,能触发捕获中断,从而获取低电平时间TL,并标记此时发生了电平跳变,在下降沿(B点)到来时,也能触发捕获中断,从而获取高电平时间TH,并标记此时发生了电平跳变。好像TMS320F28335的同一个捕获端口只能使用一个捕获事件来触发捕获中断,对于这种有两个捕获事件的,请问用什么办法能解决这个问题?只要能解决正确获取高低电平时间TH和TL,并标记发生的电平跳变,请问还可以有其他策略吗?
mangui zhang:
捕获一般都是用于计算周期吧 也就是一直捕获上升沿 两次捕获的值做差值 就算周期
两种沿捕获 是不是要切换配置啊 能不能赶上?
有一光耦编码盘会输出如图所示的方波,现在想在上升沿(A点)到来时,能触发捕获中断,从而获取低电平时间TL,并标记此时发生了电平跳变,在下降沿(B点)到来时,也能触发捕获中断,从而获取高电平时间TH,并标记此时发生了电平跳变。好像TMS320F28335的同一个捕获端口只能使用一个捕获事件来触发捕获中断,对于这种有两个捕获事件的,请问用什么办法能解决这个问题?只要能解决正确获取高低电平时间TH和TL,并标记发生的电平跳变,请问还可以有其他策略吗?
user4797414:
回复 Eric Ma:
好的,谢谢,我还有两个个疑问请教下。下面是我的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个系统时钟脉冲时,则所有时间捕获值都完全正确,请问这是什么原因?谢谢!
有一光耦编码盘会输出如图所示的方波,现在想在上升沿(A点)到来时,能触发捕获中断,从而获取低电平时间TL,并标记此时发生了电平跳变,在下降沿(B点)到来时,也能触发捕获中断,从而获取高电平时间TH,并标记此时发生了电平跳变。好像TMS320F28335的同一个捕获端口只能使用一个捕获事件来触发捕获中断,对于这种有两个捕获事件的,请问用什么办法能解决这个问题?只要能解决正确获取高低电平时间TH和TL,并标记发生的电平跳变,请问还可以有其他策略吗?
user5006393:
回复 user4797414:
请问你想通了没有?我现在也想用dsp28335的ecap捕获上升沿时产生中断,捕获到下降沿时产生另一个中断。
有一光耦编码盘会输出如图所示的方波,现在想在上升沿(A点)到来时,能触发捕获中断,从而获取低电平时间TL,并标记此时发生了电平跳变,在下降沿(B点)到来时,也能触发捕获中断,从而获取高电平时间TH,并标记此时发生了电平跳变。好像TMS320F28335的同一个捕获端口只能使用一个捕获事件来触发捕获中断,对于这种有两个捕获事件的,请问用什么办法能解决这个问题?只要能解决正确获取高低电平时间TH和TL,并标记发生的电平跳变,请问还可以有其他策略吗?
user4797414:
回复 user5006393:
木有想通哦,请问你很好的解决了没?
有一光耦编码盘会输出如图所示的方波,现在想在上升沿(A点)到来时,能触发捕获中断,从而获取低电平时间TL,并标记此时发生了电平跳变,在下降沿(B点)到来时,也能触发捕获中断,从而获取高电平时间TH,并标记此时发生了电平跳变。好像TMS320F28335的同一个捕获端口只能使用一个捕获事件来触发捕获中断,对于这种有两个捕获事件的,请问用什么办法能解决这个问题?只要能解决正确获取高低电平时间TH和TL,并标记发生的电平跳变,请问还可以有其他策略吗?
user4797414:
回复 user5006393:
木有想通哦,请问你很好的解决了没?