定时器初值计算时该用65536还是65535?

2019-03-24 17:26发布

如题!
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
537224
1楼-- · 2019-03-24 22:50
 精彩回答 2  元偷偷看……
huaiqiao
2楼-- · 2019-03-25 03:16
16位的定时器应该是2^16=65536,所以应该是65536 而不是 65535哦。
lcofjp
3楼-- · 2019-03-25 05:47
huaiqiao 发表于 2016-11-22 12:19
16位的定时器应该是2^16=65536,所以应该是65536 而不是 65535哦。

那么,16位寄存器最大能表示的是65535,那么是不是应该设置成0呢?
Li_Lei
4楼-- · 2019-03-25 07:31
 精彩回答 2  元偷偷看……
huaiqiao
5楼-- · 2019-03-25 09:37
lcofjp 发表于 2016-11-22 17:02
那么,16位寄存器最大能表示的是65535,那么是不是应该设置成0呢?

首先,队长您这个问题问的好。说实话,我现在已经对51淡忘好多了。。。。不过我还是查看了相关的资料来回答您的问题。那么下面我来 解答下,您来指正哈。
1、针对51单片机来说,定时器的工作方式有4种,具体的工作方式见下图:

1.png

2、针对队长提出的问题:
如果楼主使用的是定时器的工作方式0,如下的地方解释的比较清楚,我想我直接搬砖过来。

2.png

如果是定时器的工作方式1
3.png

显然,根据楼主的问题,这个地方他使用的是工作方式1.
这里的65536不是“16位寄存器”,其实我的回答也不够严谨,这个应该是16位的定时器所能装载的数是2^16=65536个,也是经过65536个机器周期计数器溢出一次。


lcofjp
6楼-- · 2019-03-25 09:50
huaiqiao 发表于 2016-11-22 17:55
首先,队长您这个问题问的好。说实话,我现在已经对51淡忘好多了。。。。不过我还是查看了相关的资料来回 ...

您讲的真详细,佩服!
像您这样认真回帖的真不多了,像我就是来这里水水的。

一周热门 更多>