标题: 51单片机都是定时5ms(没有中断,单纯定时) 为什么16位定时器次8位定时器慢一点? [打印本页]

作者: 可爱萌萌哒    时间: 2020-4-20 22:02
标题: 51单片机都是定时5ms(没有中断,单纯定时) 为什么16位定时器次8位定时器慢一点?
一个51单片机问题 都是定时 5ms (没有中断,单纯定时) 为什么16位定时器次8位定时器慢一点?是程序错了,还是………
作者: man1234567    时间: 2020-4-21 11:30
理论上讲,没区别,不会有十块钱的表比十万块钱的表快或慢的。但实际上是有区别的,器件质量、编程水平等都会造成事实影响,但如果偏差太大或比较明显的话,就是与理论上的器件无关的问题了。
作者: 可爱萌萌哒    时间: 2020-4-21 21:43
man1234567 发表于 2020-4-21 11:30
理论上讲,没区别,不会有十块钱的表比十万块钱的表快或慢的。但实际上是有区别的,器件质量、编程水平等都 ...

使用中断是不是可以消除这些???
作者: accumulation    时间: 2020-4-21 22:14
这个都有误差的,受晶振影响,示波器抓出来看,还有你初始化的时候先开的那个,那个就要快点
作者: miss999    时间: 2020-4-21 22:23
肯定是程序设计有问题,程序结构不对造成的
作者: man1234567    时间: 2020-4-21 22:45
可爱萌萌哒 发表于 2020-4-21 21:43
使用中断是不是可以消除这些???

同时开几个定时器估计也一样找不到北
作者: Y_G_G    时间: 2020-4-22 08:36
所谓慢一点是怎么得来的?
仿真:那就不说了,没有意义
示波器:那就看你的程序,慢了多少?而且,是不是所有时间下都慢这么多
16位和8位的工作方式都是不一样的,时间上肯定是有区别,你不上图片,也不给代码,人家不知道怎么回事的
如果是你要精确到5000uS,那就只能汇编一点一点的去算了,C精确不好达到一个时钟的
作者: 可爱萌萌哒    时间: 2020-4-23 02:03
Y_G_G 发表于 2020-4-22 08:36
所谓慢一点是怎么得来的?
仿真:那就不说了,没有意义
示波器:那就看你的程序,慢了多少?而且,是不是 ...

相同当时写了一个C程序,发现两个灯闪烁的频率不一样
作者: Y_G_G    时间: 2020-4-23 08:17
可爱萌萌哒 发表于 2020-4-23 02:03
相同当时写了一个C程序,发现两个灯闪烁的频率不一样

如果是你写好程序烧录的结果是这样的,那肯定是你程序的问题,不管是用什么延时,虽然说是有点区别,但肯定不是你可以从灯光的频率看出来的
你不觉得你应该把代码上传一下吗?
作者: hhh402    时间: 2020-4-23 11:05
你确定是用定时器吗?从原理上讲定时器不管8位16位都一样,前提是8位的不能够溢出,8位定时器只能计数256次是不可能定时5ms的,5us可以。你用8位定时器定时5ms是不可能的,你的程序有问题。




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