systick最長定時時間:systick定時器工作原理

1:屬於Cortex內核的外設,內嵌在NVIC中

2:24位向下遞減的計數器

3:重裝載數據寄存器見到0時系統定時器就會產生一次中斷

4:僅僅只有4個寄存器來控制Cortex-m3之系統定時器理解

來源於Cortex-M3權威指南

針對於上面所述的時鐘來源,參考時鐘數如下圖Cortex-m3之系統定時器理解

時鐘樹

由上可以看出,時鐘源AHB/8或AHB

Cortex-m3之系統定時器理解
Cortex-m3之系統定時器理解
Cortex-m3之系統定時器理解

如下是利用系統定時器產生1us的設置

void delay_us(u32 uS){ //uS微秒級延時程序(參考值即是延時數,72MHz時最大值233015)	
	SysTick->LOAD=AHB_INPUT*uS;      //重裝計數初值(當主頻是72MHz,72次為1微秒)
	SysTick->VAL=0x00;        //清空定時器的計數器
	SysTick->CTRL=0x00000005;//時鐘源HCLK,打開定時器
	while(!(SysTick->CTRL&0x00010000)); //等待計數到0,第16為倒數為0則會置位
	SysTick->CTRL=0x00000004;//關閉定時器
}

注意其時鐘源是HCLK,但實際上是FCLK,因為其與AHB時鐘HCLK是相互連通的

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/226691.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 14:51
下一篇 2024-12-09 14:51

相關推薦

發表回復

登錄後才能評論