LINUX下使用簡單的中斷程式使微控制器精確計時

2021-07-24 21:23:04 字數 901 閱讀 3331

在程式開始時需要對定時器及中斷暫存器做初始化設定:

對tmod——定時器/計數器工作方式暫存器賦值,以確定t0和t1的工作方式。

計算初值,並將初值寫入th0,tl0或th1,tl1。

對ie——中斷允許暫存器的ea和et0或et1賦值,開啟t0或t1。

使tr0或tr1置位,啟動定時器/計數器定時或計數。

詳細說明如下

一、tmod是工作方式暫存器,d0~d3是定時器t0,d4~d7是定時器t1。d0~d3含義如下:

d0:m0。

d1:m1——m0和m1的四種組合方式決定了定時器/計數器的4種工作方式。當m1=0,m0=1時是16位定時器/計數器。

d2:c/t——定時器模式和計時器模式選擇位,1為計數器模式,0為定時器模式。

d3:gate——門控制位。為0時定時器/計數器的啟動與停止只與tcon暫存器的trx(x=0,1)有關;為1時由的trx和外部中斷引腳上的電平狀態共同控制。

二、thx是高8位,tlx是低8位。(x=0,1)——假定m0=1,m1=0

設機器週期為t,想要設定定時器產生一次中斷的時間為t,那麼需要計數的個數為n:

三、中斷允許暫存器ie

四、定時器/計數器控制暫存器tcon。

#include <8052.h>

uchar table=;

uchar time=0,i;

uint num;

void delayms(uchar x)

}void

main()

}p0=0x00;

p1=0xff;

while(1);

}void

t0_time(void)__interrupt(1)__using(1)

}

linux下簡單的sniffer程式

author 李亞楠 time 2006 04 02 function 檢測本機網路 include include include include include include include include include include include define inte ce eth0...

簡單的Linux下的socket程式

和c語言教程一樣,我們從乙個簡單的 hello world 程式切入 socket 程式設計。本節演示了 linux 下的 server.cpp 是伺服器端 client.cpp 是客戶端 要實現的功能是 客戶端從伺服器讀取乙個字串並列印出來。伺服器端 server.cpp include incl...

UCOS環境下的中斷程式

bsp intvectset bsp int id usart1,rfid rxtxisrhandler 設定中斷號 與中斷函式 名稱相匹配。bsp inten bsp int id usart1 使能 中斷號的中斷 rfid rxinten 開啟接收中斷 以下 先說說,幾個關鍵函式 bsp int...