本帖最后由 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;
}
|