AM1808 红外信号采样及定时器

2019-07-22 16:51发布

现在要使用AM1808的一个GPIO口作为遥控器键值输入,遥控通过定时器采样输入脉冲波形得到码值。不知道怎么开始及操作
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
zhangmangui
1楼-- · 2019-07-22 18:08
直接接到外部中断引脚就可以了
mww_520
2楼-- · 2019-07-22 23:30
我是新手啊 ,有没有相关的例程什么的,就是不知道怎么操作
Snow7
3楼-- · 2019-07-23 03:01
 精彩回答 2  元偷偷看……
mww_520
4楼-- · 2019-07-23 06:06
官网上没有关于IR的例程啊  
mww_520
5楼-- · 2019-07-23 09:35
新进展新问题:建立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;
          }
按下一次遥控器之后,得到的IR_periodTime 为什么只有16-18次 ??
起始码停止码+16位地址+16位数据+结束码   最起码要触发34次的   
mww_520
6楼-- · 2019-07-23 13:09
    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;

一周热门 更多>