新手入门
- 积分
- 18
- 金钱
- 18
- 注册时间
- 2017-12-2
- 在线时间
- 1 小时
|
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();
}
}
|
|