MicroBlaze定時器(Timer)的使用

2021-06-01 05:29:48 字數 884 閱讀 3708

microblaze的timer ip比較簡單易用,乙個xps_tc ip包含兩個32bit定時/計數器。工作方式也比較靈活,可以設定中斷、自動載入、count up/down等模式,每當timer溢位的時候產生中斷,進入中斷程式後通過寫1 clear中斷標誌位,通常的做法是csr = = xtmrctr_mgetcontrolstatusreg(xpar_my_timer_baseaddr, 0);然後再「xtmrctr_msetcontrolstatusreg(xpar_my_timer_baseaddr, 0, timer_csr);」,這樣可以在不影響別的控制位的前提下clear中斷標誌位。

同樣值得注意的是用了xintc模組,要將timer中斷服務程式連線(註冊)到xintc模組上。

使用timer ip的流程是:

(1)設定load regisiter初始值;

(2)設定控制/狀態暫存器,包括中斷時能、timer使能、count方向、relaod使能等;

(3)註冊中斷服務函式;

(4)開mb全域性中斷和xintc中斷;

(5)等待中斷發生。

(6)在中斷服務程式中clear中斷標誌位。

例程(100mhz下,每一秒產生乙個中斷)

#include "xparameters.h"

#include "xutil.h"

#include "xintc.h"

#include "xtmrctr.h"

void timer_int_handler(void);

unsigned int push_button_times, timer_cnt;

int main()

void timer_int_handler(void)

}

Mysql 檢視定時器 開啟定時器 設定定時器時間

1.檢視是否開啟evevt與開啟evevt。1.1 mysql evevt功能預設是關閉的,可以使用下面的語句來看evevt的狀態,如果是off或者0,表示是關閉的。show variables like sche 1.2 開啟evevt功能 setglobal event scheduler 1 ...

定時器 STM32定時器 基本定時器1

我是鼎!定時器時鐘一定要明確其中有哪些變數。上圖為stm407資料手冊摘出來的,可能看不清楚,其實就蘊含了幾點資訊。注意一點,我們看圖2,我們以apb1舉例,上面掛著很多的外設,包括usart1 adc 以及定時器,我們知道apb1上面最高時鐘頻率為84mhz,但是定時器的時鐘是要在此基礎上乘2,也...

Mysql 檢視定時器 開啟定時器 設定定時器時間

1 1.檢視是否開啟evevt與開啟evevt。23 1.1 mysql evevt功能預設是關閉的,可以使用下面的語句來看evevt的狀態,如果是off或者0,表示是關閉的。4 show variables like sche 5 1.2 開啟evevt功能 6 set global event ...