回覆列表
  • 1 # 雅帆電子

    定時器實質是計數器。當計數脈衝週期一定時,就有定時功能。

    雅帆用水桶給你打個比方吧!

    一、向上計定時數器舉例

    當一個255毫升的燒杯,提前放入155毫升水後,此燒杯最多容納100毫升水。生活常識大家都明白。

    同理,對於八位定時計數器來說,提前存入一個數(比如說155),那麼當計到FF時益處,相當於能計數101個脈衝(這點和燒杯例子不同之處)。所以我們只要計算出需要計數的數,用定時計數器的最大值減去該值即可。現在很多微控制器有溢位自動賦初值功能,比較方便。

    二、向下定時計數器舉例

    當放入155毫升水時,就能流出155毫升水。放入200毫升水,能流出200毫升水。水越多定時越長。

    同理,在微控制器當中只要把我們想要計數的脈衝數放入計數器暫存器即可。減到0再減到0xFF時置位中斷標記。在中斷裡重新賦值。自動重灌載的功能省去賦值這一步。

    三、比較型定時計數器

    這種型別結合了向上定時計數器和向下定時計數器的優點。用實物舉例就是開口可以移動。如下圖所示。開口在155毫升處就只能裝155毫升,在50毫升處就只能裝50毫升。

    同理,我在只要在微控制器當中設定計數的最大值即可。到達此值再加1溢位,置位定時計數器中斷標記。

    四,對於長定時的處理

    由於定時計數器的位數一定,最大定時時間也一定,超過使用範圍的可使用軟體計時。既增加一個全域性變數,來一次中斷加1,加到想要的值後賦值0。

  • 中秋節和大豐收的關聯?
  • 谷歌seo最佳化怎麼做?