韦根协议c语言,韦根协议(26位)及其读取算法

韦根协议c语言,韦根协议(26位)及其读取算法000000000000 除去第一次原始数据的处理 每次与的数据都是向右移 8 位 所有与完了都不要忘记向右移 我来分别说一下 右移的位数 处理原始数据向右移 1 位 HID 向右移 16 位 Pid1 右移 8 位 Pid2 不用移了 接下来放程序 mw shl code c true volatilelong 0 volatileintr

0000 0000 0000 0000 1000 1100

除去第一次原始数据的处理,每次与的数据都是向右移8位。

所有与完了都不要忘记向右移,我来分别说一下,右移的位数。

处理原始数据向右移1位;HID向右移16位;Pid1右移8位;

Pid2不用移了。

接下来放程序

[mw_shl_code=c,true]

volatile long reader = 0;

volatile int readerCount = 0;

long sign = 0xff0000;

void readerOne(void)

{

readerCount++;

reader = reader << 1;

reader |= 1;

}

void readerZero(void)

{

readerCount++;

reader = reader << 1;

}

void setup()

{

Serial.begin(9600);

attachInterrupt(3, readerZero, RISING);

attachInterrupt(2, readerOne, RISING);

delay(10);

reader = 0;

readerCount = 0;

}

void loop()

{

if(readerCount >=26)

{

Serial.print(” Reader:”);

Serial.print(reader);

Serial.println(“”);

reader = reader & 0x1fffffe;

reader = reader >> 1;

long hid = reader & sign;

hid = hid >> 16;

hid = hid * 256 * 256;

sign = sign >> 8;

long pid1 = reader & sign;

pid1 = pid1 >> 8;

pid1 = pid1 * 256;

sign = sign >> 8;

long pid2 = reader & sign;

sign = 0xff0000;

long value = hid + pid1 + pid2;

Serial.println( value);

reader = 0, readerCount = 0;

hid = 0, pid1 = 0, pid2 = 0, value = 0;

}

}

[/mw_shl_code]

代码中的0x啥啥啥都是位与数据的换算成16进制得到的,若仔细看此贴,就知道为什么sign>>8的原因了。

70d8077d25d7c32fb2a7a7cb2bbf0996.gif

截图852.png (22.54 KB, 下载次数: 779)

2013-1-23 10:28 上传

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211913.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午9:17
下一篇 2026年3月18日 下午9:18


相关推荐

  • 开发工具-Java SDK下载地址「建议收藏」

    开发工具-Java SDK下载地址「建议收藏」更新记录2022年6月14日加入更多的下载地址。2022年6月10日完善标题。下载地址:https://www.oracle.com/java/technologies/downloads/https://docs.microsoft.com/en-us/java/openjdk/downloadhttps://jdk.java.net/archive/…

    2022年10月20日
    4
  • 利用charles抓包

    利用charles抓包charles是一款http抓包软件,和fiddler极为相似,所以大家就会问,为啥不用fiddler呢,因为mac没有fiddler。而且charles还是付费版本。所以我们这里从安装破解到抓包成功一步一步讲清楚。下载并安装我们进入charles官网进行下载:https://www.charlesproxy.com/latest-release/download.do,我是mac,所以选择其中的macOS下载dmg包之后我们正常的安装,安装完成打开,大概就是这样的模样破解我们打开激活码生成界

    2022年6月6日
    50
  • 为什么国内很少人用树莓派(树莓派怎么玩)

    1.网站服务器在树莓派上搭建了一个博客网站,树莓派就放在家里,常年开机,使用内网穿透技术使得任何地方都可以访问我的博客,节省了服务器费用。虽然树莓派的性能比较差,但是当一个基本的服务器也足够了。树莓派安装lnmp套件搭建个人博客网站服务器|科技爱好者博客​www.lxx1.com2.做了一个广告屏蔽器用树莓派搭建了一个DNS服务器,主要用来屏蔽广告,效果非常不错,家里所有的上网设备都没有广…

    2022年4月12日
    600
  • 0x80070035找不到网络路径_0x80004005无法访问共享

    0x80070035找不到网络路径_0x80004005无法访问共享提示!!!企业workstation最好用原版本操作系统。不要用ghost版本。些类问题多见于ghost版本。1.以管理员权限运行cmd.重启电脑,再试试。本人亲测可行。第一次访问可能会有

    2022年8月4日
    9
  • MATLAB 矢量图(风场、电场等)标明矢量大小的方法——箭头比例尺及风矢杆图的绘制

    MATLAB 矢量图(风场、电场等)标明矢量大小的方法——箭头比例尺及风矢杆图的绘制作者:中国科学院大气物理研究所律成林MATLAB中标明矢量图中矢量大小的方法:绘制箭头比例尺,或绘制风矢杆图。m_vec函数绘制的箭头长度仅与矢量大小本身有关。本人基于m_vec绘制结果,开发了一个可以在Figure内任意位置为指定的矢量图绘制箭头比例尺的函数——m_arrow_scale2,本文已包含该函数的代码,该函数考虑了方方面面,如文本标注、位置、字体等参数,且预设了很多参数供使用者选择,选择余地非常多,使用起来非常方便,功能也较为强大。本着“授人以渔”的原则,倾注了本人对MATLAB深刻理解。

    2022年6月28日
    122
  • vm安装winme[通俗易懂]

    vm安装winme[通俗易懂]vm安装windowsme第一步,到msdn下载windowsme2.打开vm3.回到主页,点击创建新的虚拟机3.按典型4.下一步,按截图位置不要在c盘下一步完成h回车一直回车完整教程:https://www.bilibili.com/video/av9140535/我要去图书馆了,以后在把完整版发表…

    2026年4月17日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号