关于曼彻斯特解码程序
我这前写过一个编码程序是把单片机8位数据转换成16位曼彻斯特编码,程序如下:unsigned int CharToManchester(unsigned char DataIn)
{
unsigned char i=0;
for(i= 0;i < 7;i++)
{
if((DataIn & 0x80) == 0x80)//1->10
{
ManchesterOut += 1;//写1
ManchesterOut <<= 1;//移位不写1相当于写0
ManchesterOut <<= 1;//移位准备编码下一位
}
if((DataIn & 0x80) == 0)//0->01
{
ManchesterOut <<= 1;//不写1移位相当于写0
ManchesterOut += 1;//写1
ManchesterOut <<= 1;//移位准备编码下一位
}
DataIn <<= 1;
}
//编码第八位数据
if((DataIn & 0x80) == 0x80)//1->10
{
ManchesterOut += 1;
ManchesterOut <<= 1;
}
if((DataIn & 0x80) == 0)//0->01
{
ManchesterOut <<= 1;
ManchesterOut |= 1;
}
return ManchesterOut;//返回编码后的16位值
}
现在是想把16位的曼彻斯特编码解码成8位数据,想请楼主帮忙写写,我不知道怎么写,诡求!非常感谢!!
我的邮箱:cjmnbu@163.com 赤裸裸的伸手党你不会自己先写一下么 曼码就是0->1表示0,1->0表示1,这个解码超级简单的 兄弟啊,怎么解啊,你说很简单的啊
huangxz 发表于 2013-5-5 16:39 static/image/common/back.gif
曼码就是0->1表示0,1->0表示1,这个解码超级简单的
怎么解啊,超级简单?? chujinming2013 发表于 2013-5-5 19:03 static/image/common/back.gif
怎么解啊,超级简单??
就是你编码的逆啊,比如01解成0,10解成1,就行了啊,你都编了码,解码还有啥呀
huangxz 发表于 2013-5-5 22:35 static/image/common/back.gif
就是你编码的逆啊,比如01解成0,10解成1,就行了啊,你都编了码,解码还有啥呀
...
怎么写,我是菜鸟,写出来看看,兄弟。 本帖最后由 huangxz 于 2013-5-5 23:03 编辑
chujinming2013 发表于 2013-5-5 22:52 static/image/common/back.gif
怎么写,我是菜鸟,写出来看看,兄弟。
void machester_decode(char *input, char *output, int len)
{
int i;
char *p_src = input;
char *p_tar = output;
for(i=0;i<len;i++)
{
*p_src <<= 2;
*p_tar <<= 1;
if((p_src & 0xc0) == 0x10)p_tar |= 0x01;
if((i % 4) == 3)p_src++;
if((i % 8) == 7)p_tar++;
}
}
以此类似,不知道我写的楼主看不看的明白,呵呵
*p_src <<= 2;这个应该放下面 huangxz 发表于 2013-5-5 23:02 static/image/common/back.gif
以此类似,不知道我写的楼主看不看的明白,呵呵
*p_src
*p_src <<= 2;放在哪个下面,
这个程序不太明白,能解释下吗??非常感谢!! chujinming2013 发表于 2013-5-5 23:17 static/image/common/back.gif
*p_src
就是先取出解码两个,再移位两个,就下面的,我先写的先移位了,会漏掉两个 huangxz 发表于 2013-5-5 23:21 static/image/common/back.gif
就是先取出解码两个,再移位两个,就下面的,我先写的先移位了,会漏掉两个
好像不对啊
我是输入16位的二进制代码啊,输出是8位啊,定义不应该是char *input ,兄弟,你有QQ吗,能加我下吗
我们聊聊好吗,我的QQ 422052755,谢谢 chujinming2013 发表于 2013-5-5 23:29 static/image/common/back.gif
好像不对啊
我是输入16位的二进制代码啊,输出是8位啊,定义不应该是char *input ,兄弟,你有QQ吗,能加 ...
我编译器里仿真出来的结果也是不对的,子函数写成带一个形参,带返回的好
如,unsigned charmachester_decode(unsigned int input)
{
} chujinming2013 发表于 2013-5-5 23:50 static/image/common/back.gif
我编译器里仿真出来的结果也是不对的,子函数写成带一个形参,带返回的好
如,unsigned charmachester_ ...
非常感谢兄弟的解答,能不能再写一个子函数,能不能再加点注释,谢谢!!:handshake chujinming2013 发表于 2013-5-6 00:00 static/image/common/back.gif
非常感谢兄弟的解答,能不能再写一个子函数,能不能再加点注释,谢谢!! ...
你用int类型输入,要考虑大小端的问题哦,因为曼码是有顺序的 在压缩包里面,楼主可以看看
huangxz 发表于 2013-5-6 10:22 static/image/common/back.gif
在压缩包里面,楼主可以看看
非常感谢兄弟热情的解答!!
我想跟你交个朋友,
你的QQ号多少 或者邮箱地址多少?? chujinming2013 发表于 2013-5-6 20:38 static/image/common/back.gif
非常感谢兄弟热情的解答!!
我想跟你交个朋友,
你的QQ号多少 或者邮箱地址多少?? ...
别客气,有什么问题就上论坛吧
上面的所有都是朋友 huangxz 发表于 2013-5-6 21:51 static/image/common/back.gif
别客气,有什么问题就上论坛吧
上面的所有都是朋友
这句话我爱听 最近在研究关注一下 今天终于把曼彻斯特解码 写出来了
接收非常好
页:
[1]
2