1、th0和tl0是一組十六位定時器,實際上就是乙個暫存器,當時鐘走到這乙個十六位的數值的時候,會中斷一次,執行一次所有標有interrupt 1的中斷函式。一般用(65535-a)/256來表示ax1us的高八位,用(65535-a)%256來表示ax1us的低八位。這個初值時指計數器開始計數的時候從這個數開始,直到產生溢位,然後執行中斷函式。
2、ie1外部中斷1,當為1的時候外部中斷向cpu請求中斷,cpu響應時執行中斷函式並清零ie1,ie0同理
3、tmod是定時器控制暫存器,對於定時器0的工作方式有:
0x00(方式0,16位自動重灌計數器),
0x01(方式1,16位計數器),
0x2(方式2,8位自動載入計數器),
0x3(方式3,僅適用於t0),一般來講都選用方式1;
同樣的,對於定時器1的工作方式有:
0x00(16位自動重灌計數器),
0x10(16位計數器),
0x20,0x30(此時無效)四種方式。
4、tcon主要用於控制定時/計數器的啟動/停止,儲存t0、t1的溢位和中斷標誌
5、ri接收中斷標誌位,當為1時表示接收完第八位資料
6、ea為0的時候禁止所有中斷,否則由個別位控制開啟中斷。當有中斷函式的時候記得設定為1
7、et0定時器0的中斷允許,為1時允許
8、ex0外部中斷int0的中斷允許
9、es串列埠中斷允許控制位,1開串列埠中斷,0關串列埠中斷
10、tr0是開啟定時器0,即允許t0計數;tr1開啟定時器1,即允許t1計數
11、當定時器工作在計數方式時,外部事件可通過引腳p3-4(對應t0)或p3^5(對應t1)進行輸入
12、中斷方式:
外部中斷0,interrupt 0,優先順序最高;
定時/計數0中斷,interrupt 1,優先順序次之;
外部中斷1,interrupt 2,;
定時/計數器1中斷,interrupt 3,;
串列埠中斷,interrupt 4
17、k1按鍵為p3-2,k2按鍵為p3-3,k3按鍵為p1^7
18、蜂鳴器為p3^4
嵌入式 定時器中斷
先上 include void init void main void init void timer0 interrupt 1 示例 就要有示例 的樣子,簡簡單單的才能把問題說清楚!先解釋下幾個變數,tmod,th0,tl0,et0,ea,tr0,這些變數不是我定義的,而是標頭檔案中的,先掌握用法...
藍橋杯嵌入式讀寫EEPROM 定時器設定
1 iic讀寫eeprom這個要自己寫哦 沒有參考 uint8 t e2prom read uint8 t address void e2prom write unsigned char address,unsigned char info 2 主程式呼叫 千萬記得i2c init i2c init...
Linux嵌入式 核心 核心定時器
1.度量時間差 時鐘中斷由系統的定時硬體以週期性的時間間隔產生,這個間隔 即頻率 由核心根據hz來確定,hz是乙個與體系結構無關的常數,可配置 50 1200 在x86平台,預設值為1000 每秒計數1000次 每當時鐘中斷發生時,全域性變數jiffies unsigned long 就加1,因此j...