首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

红外线数据分析问题

发布网友 发布时间:2022-04-22 07:38

我来回答

2个回答

热心网友 时间:2022-06-17 21:29

IrValue[k]>>=1; //k表示第几组数据      这是把变量整体右移一位,由于是无符号最高位补0
if(Time>=8)//如果高电平出现大于565us,那么是1
{
IrValue[k]|=0x80;            //变量最高位置一
}
Time=0;//用完时间要重新赋值


这样如果判断是1了就把最高位置一,0的话不用清零,因为右移的时候已经补0了

热心网友 时间:2022-06-17 21:29

比如来的8组数据是01011001,第一个数是0 那么,IrValue[k]>>1结果是0xxxxxxxx 第二次循环,是1的数据。先执行IrValue[k]>>1的结果是00xxxxxx,已经满足Time大于8,所以IrValue[k]|=0x80的结果是10xxxxxx,按程序的意思,只要是0的数据,就右移1,是1的数据就先右移1在高位置1.K循环后,IrValue[k]=10011010.根据你的提问,这个地方就判断是0了,当Time>8,之前的数组右移1位,高位在置1.判断为1.

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com