[51单片机] 滚动码计算代码

[复制链接]
1523|3
 楼主| datouyuan 发表于 2016-5-4 15:30 | 显示全部楼层 |阅读模式
本帖最后由 datouyuan 于 2016-5-4 17:39 编辑


根据上图写段滚动码计算代码

使用51MCU用汇编语言实现很简单.
我写的C语言代码比汇编复杂多了.
哪位大神改写一下,并且方便移植到其它MCU.

  1. //低8位在前
  2. void rollingCode(uint8 *roll)
  3. {
  4.         uint8 LO,HI;
  5.         uint8 C_flag;

  6.         LO=*roll;
  7.         HI=*(roll+1);

  8.         C_flag=0;
  9.         if(HI>0xff-0x25) C_flag=1;
  10.         HI+=0x25;
  11.         HI=(HI<<1)+C_flag;

  12.         LO+=0x19;
  13.         //LO=_crol_(LO, 1);//
  14.         C_flag=0;
  15.         if(LO&0x80) C_flag=1;
  16.         LO=(LO<<1)+C_flag;

  17.         HI=HI^(HI<<4);
  18.         LO=LO^(LO>>4);

  19.         *roll=LO;
  20.         *(roll+1)=HI;
  21. }



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| datouyuan 发表于 2016-5-5 09:17 | 显示全部楼层
就我所知PIC 51 ARM都有RLC"带进位标志循环左移"指令.

在C代码中如何写会生成RLC指令呢?
 楼主| datouyuan 发表于 2016-5-7 09:39 | 显示全部楼层
没人回答吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:maowenyuan@126.com

32

主题

1090

帖子

9

粉丝
快速回复 在线客服 返回列表 返回顶部