现在使用AM1808的一个GPIO口作为遥控器键值输入,通过定时器采样输入脉冲波形得到码值:
建立GPIO中断,并 设置输入模式 上升沿触发 然后在中断服务中通过计时器采样 。定时器2已使能启动
GPIO中断服务中:
ArmIrdata.IR_CurPluse = TimerCounterGet(SOC_TMR_2_REGS,TMR_TIMER12);
if ( ArmIrdata.IR_CurPluse > ArmIrdata.IR_PrePluse )
{
ArmIrdata.IR_periodTime = ArmIrdata.IR_CurPluse – ArmIrdata.IR_PrePluse;
}
else {
ArmIrdata.IR_periodTime = 0xFFFFFF – ArmIrdata.IR_PrePluse + ArmIrdata.IR_CurPluse;
}
ArmIrdata.IR_PrePluse = ArmIrdata.IR_CurPluse;
按下一次遥控器之后,得到的IR_periodTime 为什么只有16-18次 ??
起始码停止码+16位地址+16位数据+结束码 最起码要触发34次的
谢谢,帮忙解解难题
Welson Mo:
现在这个问题就集中在触发次数上,示波器看波形的确是正确的。就是中断触发的次数不正常。不知道是什么原因
Welson Mo:
回复 Welson Mo:
问题的具体细节可以看下面的链接:
https://e2e.ti.com/support/dsp/omap_applications_processors/f/42/p/509139/1848308#1848308
Tony Tang:
回复 Welson Mo:
我觉得你这个应用用ECAP接口应该更好。
目前通过定时中断去读取状态,你需要确定一下一个中断的响应时间跟GPIO的信号的切换时间,这之间能配合的上么。
Welson Mo:
回复 Tony Tang:
你好,Tony Tang
之前使用的是S3C2410,同样的做法 是完全OK的。
现在只是更换成了AM1808,为啥就不行了?
Tony Tang:
回复 Welson Mo:
我建议调整timer中断的间隔试试。
Welson Mo:
回复 Tony Tang:
您指的timer 中断指的是我采样的中断还是什么?
我现在出现的问题1:GPIO的触发次数有问题,少了很多。
2.触发的模式:我设置在下降沿模式,一个由高到低再到高的波形竟然触发了2次。 到底TI的GPIO的触发怎么设置啊