定時器是微控制器系統的乙個重點,但並不是難點,大家一定要完全理解並且熟練掌握定時器的應用。
時鐘週期
時鐘週期 t 是時序中最小的時間單位,具體計算的方法就是 1/時鐘源頻率,我們 kst-51 微控制器開發板上用的晶振是 11.0592m,那麼對於我們這個微控制器系統來說,時鐘週期=1/11059200 秒。
機器週期
我們的微控制器完成乙個操作的最短時間。機器週期主要針對組合語言而言,在組合語言下程式的每一條語句執行所使用的時間都是機器週期的整數倍,而且語句占用的時間是可以計算出來的,而 c 語言一條語句的時間是不確定的,受到諸多因素的影響。51微控制器系列,在其標準架構下乙個機器週期是 12 個時鐘週期,也就是 12/11059200 秒。現在有不少增強型的 51 微控制器,其速度都比較塊,有的 1 個機器週期等於 4 個時鐘週期,有的 1個機器週期就等於 1 個時鐘週期,也就是說大體上其速度可以達到標準 51 架構的 3 倍或 12倍。因為我們是講標準的 51 微控制器,所以我們後邊的課程如果遇到這個概念,全部是指 12 個時鐘週期。
這兩個概念了解即可,下邊就來我們的重頭戲,定時器和計數器。定時器和計數器是微控制器內部的同乙個模組,通過配置 sfr(特殊功能暫存器)可以實現兩種不同的功能,我們大多數情況下是使用定時器功能,因此我們的課程也是主要來講定時器功能,計數器功能大家自己了解下即可。
顧名思義,定時器就是用來進行定時的。定時器內部有乙個暫存器,我們讓它開始計數後,這個暫存器的值每經過乙個機器週期就會自動加 1,因此,我們可以把機器週期理解為定時器的計數週期。就像我們的鐘錶,每經過一秒,數字自動加 1,而這個定時器就是每過乙個機器週期的時間,也就是 12/11059200 秒,數字自動加 1。還有乙個特別注意的地方,就是鐘錶是加到 60 後,秒就自動變成 0 了,這種情況在微控制器或計算機裡我們稱之為溢位。
那定時器加到多少才會溢位呢?後面會講到定時器有多種工作模式,分別使用不同的位寬(指使用多少個二進位制位),假如是 16 位的定時器,也就是 2 個位元組,最大值就是 65535,那麼加到 65535 後,再加 1 就算溢位,如果有其他位數的話,道理是一樣的,對於 51 微控制器來說,溢位後,這個值會直接變成 0。從某乙個初始值開始,經過確定的時間後溢位,這個過程就是定時的含義。
5 2 定時器介紹
定時器是微控制器系統的乙個重點,但並不是難點,大家一定要完全理解並且熟練掌握定時器的應用。1 時鐘週期 時鐘週期 t 是時序中最小的時間單位,具體計算的方法就是 1 時鐘源頻率,我們 kst 51 微控制器開發板上用的晶振是 11.0592m,那麼對於我們這個微控制器系統來說,時鐘週期 1 1105...
linux Posix定時器介紹
在linux應用程式設計中,定時器的使用是不可或缺的部分,本文介紹下linux posix定時器常用介面使用方法,如果建立乙個有效的定時器。clockid 定時間基於哪個時間建立 引數含義 clock realtime systemwide realtime clock.系統實時時間,即日曆時間 c...
Mysql 檢視定時器 開啟定時器 設定定時器時間
1.檢視是否開啟evevt與開啟evevt。1.1 mysql evevt功能預設是關閉的,可以使用下面的語句來看evevt的狀態,如果是off或者0,表示是關閉的。show variables like sche 1.2 開啟evevt功能 setglobal event scheduler 1 ...