标题:
"接水"模型理解单片机定时器/计数器
[打印本页]
作者:
比特恒星
时间:
2019-12-20 16:29
标题:
"接水"模型理解单片机定时器/计数器
单片机的定时器/计数器可类比为一个“接水”模型。
假设我有一个有刻度的杯子,分度值为1ml,用它来计数接到的水量。这个容量500ml,称为最大计数值M,要从一个饮水机里接300ml的水,可以让这个杯子最开始装200ml的水,称为初始化,初值为X。当水杯接满水,这时的水位称为溢出标志位。就完成了计数的目的。X=M-计数值。
如果水流速度恒定,每接1ml所需时间一定。假设每1ml水需要0.01s,这个时间称为T。要接2s的水,可计算出接2s能接200ml的水。那么容量为500ml的水杯里装初值为300ml的水,从预设水位到溢出标志位,经历的时间就是2s。这就起到了定时器的目的。初值X=M-定时时间/T。
我家只有一个饮水机,但我有好几个杯子,不同容量的杯子提供给我多种方式实现计数和定时。方式0是一个容量小的杯子,我称它为13号杯;方式1是大容量杯子称作16号杯;方式2是两个最小的8号杯,用这种方式时,两个杯子要预设同样的水位,一个用来接水计数,另一个作为预设水位参考,第一个杯子溢满了,可以倒掉(称为清零)再装入同第二个水杯一样的水位再次计数。
如果一个杯子的容量足以实现指定时间的定时,可以反复循环。如要进行20s的计数,就把上述定时操作执行10次。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1