导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→关于波特率检测~!

* 92492: 关于波特率检测~!

   ajaxyy 
ajaxyy发表的帖子 

 关于波特率检测~!
我的思路是这样的,因为我要检测的数据是一些未知数,所以我编程的过程中用检测高低电平的宽度来确定波特率~!
使用定时器0来测量电平宽度,包括低电平和高电平
先是定时器初始化
然后的程序是这样的
uchar CharH,CharL,count;
uint temp[20];
void record(void)   记录函数,记录一组脉冲的宽度
{
while(!CPURX)
TR0=1;
while(!TF0)
{if(IF0)
break;
while(CPURX);
CharH=THO;
CharL=TL0;
temp[count]=CharH  <  <8+CharL;
count++;
if(IF0)
break;
while(!CPURX);
CharH=THO;
CharL=TL0;
temp[count]=CharH  <  <8+CharL;
count++;
}
TF0=0;
TR0=1;
}
viod computer(void)
{计算函数就是把记录的一组脉冲宽度进行计算,两两相减,计算出最小的宽度,我认为理想的情况是发送的数据肯定会出现一个高电平或者一个低电平,然后它的波特率就是一个最小脉冲的倒数(不知道这个思路对不对哦?)。程序就省略了……
}
程序编好以后,我用串口调试助手发送了一组0x55,接受的电平宽度误差比较大,
请问各位,1,我这个思路可行嘛???
2,我是用c编的,请问对脉冲时间的计数是不是不准确??
3,波特率是不是一个最小脉冲的倒数啊?
4,我用的是8位单片机,我计算的数组是uint型,请问这样可以嘛?
4,如果这个思路不行,各位大侠能不能提供一些好的建议啊???

发表时间:2006年5月4日20:21:36

  
回复该帖

本主题共有 2 帖,分页:>>>>>该主题的所有内容[2]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  92545.[详细]建议你,,,
摘要:最好用汇编写,汇编可以精确的使用指令到指令周期时间,可以选用最快的指令,可以准确的确定对一段指令的执行总时间。另外,你应该判断高/低电平的周期,数个周期在允许误差内,求出平均值,然后对所测得的周期进行查表。......(205字)
- [黑猫][835次] 2006年5月5日

[上一篇帖子]:救救我吧气死人的飞利普单片机小弟前几天买了P89C60X2BN一块  写入程序后
[下一篇帖子]:求助!!![size=4][size=4][color=#0000FF][color=#DC143C