打印

小白菜的电子生活之路(连载)

[复制链接]
1477|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
3htech|  楼主 | 2013-6-26 16:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
壹佰| | 2013-6-26 16:50 | 只看该作者
很好啊,多多分享吧

使用特权

评论回复
板凳
3htech|  楼主 | 2013-6-26 16:54 | 只看该作者
壹佰 发表于 2013-6-26 16:50
很好啊,多多分享吧

谢谢~我一开始还没有动力去这么做。

使用特权

评论回复
地板
tyw| | 2013-6-26 17:01 | 只看该作者
本帖最后由 tyw 于 2013-6-26 17:04 编辑

5v,9v,12v是大路系列,设计要靠系列才不会找不到器件

见鬼了,回帖时LZ要找10线性电源,出来再看,老母**变鸭,LZ改换门庭了,改卖小白菜了,晕

使用特权

评论回复
5
3htech|  楼主 | 2013-6-26 17:15 | 只看该作者
本帖最后由 3htech 于 2013-6-26 21:41 编辑

【一】 定时器初值重装引起的误差

背景:
小白菜在做一个测速项目时,使用单位时间内进行计数的方法来测速。单位时间的产生是用定时器来实现的,初值手动装填。
使用信号发生器进测试时发现,实际测得的信号总是有0.15%的误差,无论如何也无法消除。

查找原因:
硬件上,查找信号进入单片机前的频率和波形,经过示波器对比,没有问题。说明问题出在单片机上。
问题要么是在计数器上,要么是在定时器上。我想了一下,计数器的可能性不大,因为信号频率不算太高,计数器完全没有问题。
可能的原因就是定时器上。
于是我查看了程序,在定时中断ISR中,有一条引起了我的注意,
THn = xxxx;
TLn = xxxx;

我想了想,
由于定时中断程序中,没有关定时器中断,定时器一直在运行,也就是说,CPU在跳转到定时中断程序执行时,定时已经跑了几个数了,而我在赋定时器初值的时候,没有考虑到这几个数。
我想,我找到了解决这个问题的原因。

解决之道
由于我的系统里面,定时中断优先级最高,且没有同级中断,并且TLn的初值很小,这允许我使用下面这条语句,而不至于让TLn溢出。
TLn += xxxx;  
再次测试,频率终于一致了。当定时器不停,TLn += xxxx; 可以保证在执行本条语句之前,定时器跑的计数值不会被忽略。

后记
关于定时器中断,《删繁就简-单片机入门到精通》做了很详细的说明。大家可以看看~

使用特权

评论回复
6
3htech|  楼主 | 2013-6-26 17:18 | 只看该作者
tyw 发表于 2013-6-26 17:01
5v,9v,12v是大路系列,设计要靠系列才不会找不到器件

见鬼了,回帖时LZ要找10线性电源,出来再看,老母**变鸭, ...

其实一开始是想记录自己的点点滴滴的,又怕被大神们笑话,所以就随便找了个由头。嘿嘿。不过,我现在又重新弄了一下。准备记录下来。

同时也想结交各们前辈。

使用特权

评论回复
7
refee| | 2013-6-28 15:16 | 只看该作者
tyw 发表于 2013-6-26 17:01
5v,9v,12v是大路系列,设计要靠系列才不会找不到器件

见鬼了,回帖时LZ要找10线性电源,出来再看,老母**变鸭, ...

哈哈 让T叔小小的郁闷了一下 ;P

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我是一颗小白菜~!

20

主题

416

帖子

3

粉丝