OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2142|回复: 2

红外接收的疑问

[复制链接]

1

主题

3

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2017-12-2
在线时间
1 小时
发表于 2017-12-2 11:01:15 | 显示全部楼层 |阅读模式
1金钱
最近做了一个遥控程序,接收版是完全基于原子哥的红外接收Demo。但是我自己写的发射程序,却总是有一个Bug,在数据解码时,每次第一次上电接收,地址和命令解码正常,但是再按下时,最高位被无故+1,例如我发射的数据是Data=0X00FFA2D5,第一次解码正确,后面再按键就一直为0x80FFA2D5,没有查出到底什么问题。求各位大神解答
void Encode_Data(uint8_t Addr,uint8_t Cmd)
{
         uint8_t Bit_Num;
         uint32_t Data=0x00FFA25D;
        for(Bit_Num=0;Bit_Num<32;Bit_Num++)
        {
                 Data<<=1;
                ((Data&0x80000000)==0)?Encode_0():Encode_1();
        }
         while(T16Nx_GetCNT0(T16N1)<=times) //没有达到108ms
  {
           Ir_Swicth(0);
           PWM_Disable();
        }
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-12-2 11:37:35 | 显示全部楼层
这种问题直接看时序得了.上逻辑分析仪呀.
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2017-12-2
在线时间
1 小时
 楼主| 发表于 2017-12-2 11:46:08 | 显示全部楼层
操作系统 发表于 2017-12-2 11:37
这种问题直接看时序得了.上逻辑分析仪呀.

0和1的时序我都调整啦,周期值也同样设置成108ms,按理说,我这个是严格按照是NEC协议编写的,部分脉宽我也做了设置跟mini遥控器一样的值,但是为何有误差
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-25 19:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表