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