|
|
單片機的定時器/計數(shù)器可類比為一個“接水”模型。
假設(shè)我有一個有刻度的杯子,分度值為1ml,用它來計數(shù)接到的水量。這個容量500ml,稱為最大計數(shù)值M,要從一個飲水機里接300ml的水,可以讓這個杯子最開始裝200ml的水,稱為初始化,初值為X。當(dāng)水杯接滿水,這時的水位稱為溢出標(biāo)志位。就完成了計數(shù)的目的。X=M-計數(shù)值。
如果水流速度恒定,每接1ml所需時間一定。假設(shè)每1ml水需要0.01s,這個時間稱為T。要接2s的水,可計算出接2s能接200ml的水。那么容量為500ml的水杯里裝初值為300ml的水,從預(yù)設(shè)水位到溢出標(biāo)志位,經(jīng)歷的時間就是2s。這就起到了定時器的目的。初值X=M-定時時間/T。
我家只有一個飲水機,但我有好幾個杯子,不同容量的杯子提供給我多種方式實現(xiàn)計數(shù)和定時。方式0是一個容量小的杯子,我稱它為13號杯;方式1是大容量杯子稱作16號杯;方式2是兩個最小的8號杯,用這種方式時,兩個杯子要預(yù)設(shè)同樣的水位,一個用來接水計數(shù),另一個作為預(yù)設(shè)水位參考,第一個杯子溢滿了,可以倒掉(稱為清零)再裝入同第二個水杯一樣的水位再次計數(shù)。
如果一個杯子的容量足以實現(xiàn)指定時間的定時,可以反復(fù)循環(huán)。如要進行20s的計數(shù),就把上述定時操作執(zhí)行10次。
|
評分
-
查看全部評分
|