将一个char类型的数转换成曼切斯特数

很多时候,在我们编写RF射频编码时,为了能够更好的接收‘发送数据,往往会用到数据的编码。 而曼切斯特就是其中之一。

这种编码方式,对于简单的单片机非常实用。只需一个定时器就可以将数码接收、发送。

代码如下:

 1 unsigned int manchester_encoding(unsigned char dat)
 2 {
 3     unsigned int manchester_out=0;
 4     unsigned char i=0;
 5     for(i=0;i<7;i++)
 6     {
 7       if(dat&0x80)
 8       {
 9         manchester_out+=1;
10         manchester_out<<=1;
11         manchester_out<<=1;
12       }
13       else
14       {
15         manchester_out<<=1;
16         manchester_out+=1;
17         manchester_out<<=1;
18       }
19       dat<<=1;
20     }
21     if(dat&0x80)
22     {
23       manchester_out+=1;
24       manchester_out<<=1;
25     }
26     else
27     {
28       manchester_out<<=1;
29       manchester_out|=1;
30     }
31     return manchester_out;
32 }

Thanks.

B.R.

 

posted on 2017-10-14 10:03  Milo_lu  阅读(152)  评论(0编辑  收藏  举报

导航