打印
[51单片机]

滚动码计算代码

[复制链接]
1336|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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;
}



相关帖子

沙发
datouyuan|  楼主 | 2016-5-5 09:17 | 只看该作者
就我所知PIC 51 ARM都有RLC"带进位标志循环左移"指令.

在C代码中如何写会生成RLC指令呢?

使用特权

评论回复
板凳
datouyuan|  楼主 | 2016-5-7 09:39 | 只看该作者
没人回答吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:maowenyuan@126.com

31

主题

1083

帖子

9

粉丝