标题: 谁能详细说一下单片机中误差怎么产生的,要非常详细的 [打印本页]

作者: 523633035    时间: 2018-5-20 09:02
标题: 谁能详细说一下单片机中误差怎么产生的,要非常详细的
单片机中传递的是脉冲的个数,如何对这个进行误差分析,如何对定时/计数器模块进行误差分析求详细解释,谢谢。

作者: ahshmj    时间: 2018-5-20 11:52
单片机的误差?你是不是针对定时器而言?

定时器的误差首先取决于使用的晶振精度。

其次是程序上的误差,如:中断产生后到重新启动定时器是有一个过程,这个在汇编语言中可以清清楚楚的看出来,中断向量的跳转、定时器初值的装载、启动等等指令都需要占用机时,如果不能正确扣除就产生了误差。(这个误差可以使用自动重装载功能避免)
再一个方面,如果有必定时器中断优先权高的程序正在运行那就要等待,造成误差。所以如果不是特殊原因(如安全)一般应把定时器的中断优先权设成最高。

作者: 优雅的刺猬    时间: 2018-5-24 22:50
在进入中断时,脉冲输出口是不进行输出的,如果中断服务程序的代码运行时间过长,进入中断又过于频繁,误差就产生了,一般设置完初值,马上就让定时器马上运行就行了,也可以在设定初值的时候把进入中断的代码所用周期算上。人为消除误差。
作者: 15942379927    时间: 2018-5-24 23:21
1,由于程序繁琐导致运行时间过长造成
2,晶振时间不准确造成
作者: Robertzhang    时间: 2018-5-25 09:22
主要是两种误差:
1. 时间基准不稳定,即晶振误差
2. 代码运行时长不能精确控制造成误差。
作者: 523633035    时间: 2018-5-25 12:40
ahshmj 发表于 2018-5-20 11:52
单片机的误差?你是不是针对定时器而言?

定时器的误差首先取决于使用的晶振精度。

这些我都知道,我想问的是±1误差到底该怎么分析,只要用计数脉冲对时间间隔进行测量就会产生±1误差,能不能讲一下只要讲出是指的什么就好了,黑币双手给大佬奉上
作者: cjtdyl    时间: 2018-5-25 14:32
你这个误差和ADC的误差类似!  就如8位的ADC, 转换结果总会有个误差,一般是1LSB, 这个大都是当输入电压临界于1LSB分辩电位点上时产生的.  用计数脉冲测量一个时间间隔, 误差情况和ADC类似. 时间间隔不可能刚刚好等分给计数脉冲, 只要是不等分,就会产生±1个误差!  即使是等分, 也可能最开始没有同步, 也会产生误差.
作者: 523633035    时间: 2018-5-28 10:07
cjtdyl 发表于 2018-5-25 14:32
你这个误差和ADC的误差类似!  就如8位的ADC, 转换结果总会有个误差,一般是1LSB, 这个大都是当输入电压临界 ...

对你说的很对,能不能详细分析一下这个误差,谢谢
作者: loading88    时间: 2018-5-28 14:19
请查看论文:图片内容查看顺序为1-2-3-4
单片机应用系统定时时间的误差分析
         文 桦,彭彦华

3fb15ea0a964c1a855325a343d52108.png (185.98 KB, 下载次数: 62)

2

2

8a8006e039a4db357a85db74a6394fa.png (132.17 KB, 下载次数: 51)

3

3

b7a06198f65177095ce5a1448f4de35.png (169.12 KB, 下载次数: 71)

1

1

c85ffc7f21ef7b440d8ffb422b0ecc3.png (3.14 KB, 下载次数: 69)

4

4





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1