本帖最后由 datouyuan 于 2016-5-4 17:39 编辑
根据上图写段滚动码计算代码
使用51MCU用汇编语言实现很简单.
我写的C语言代码比汇编复杂多了.
哪位大神改写一下,并且方便移植到其它MCU.
- //低8位在前
- void rollingCode(uint8 *roll)
- {
- uint8 LO,HI;
- uint8 C_flag;
- LO=*roll;
- HI=*(roll+1);
- C_flag=0;
- if(HI>0xff-0x25) C_flag=1;
- HI+=0x25;
- HI=(HI<<1)+C_flag;
- LO+=0x19;
- //LO=_crol_(LO, 1);//
- C_flag=0;
- if(LO&0x80) C_flag=1;
- LO=(LO<<1)+C_flag;
- HI=HI^(HI<<4);
- LO=LO^(LO>>4);
- *roll=LO;
- *(roll+1)=HI;
- }
|