08 系統定時器

2022-08-11 14:24:09 字數 1170 閱讀 1426

systick 叫做系統滴答時鐘、系統定時器,屬於 cortex-m4 核心中的乙個外設(外圍裝置),它 24bit 向下遞減 的計數器。

注意: 定時器的位數越多,定時時間更長。

通過計數值間接計算定時時間,不能像作業系統直接呼叫函式實現延時或定時功能。

系統定時器是24位,最大數值是(2^24 -1)

//系統定時器觸發1khz的中斷,中斷週期時間t= 1/f = 1000ms/1000=1ms

//系統定時器連線到pll輸出的168mhz時鐘

//只要系統定時器進行168000000次計數,就是1秒時間的到達

//只要系統定時器進行168000次計數,就是1ms時間的到達

//只要系統定時器進行168次計數,就是1us時間的到達

systick_config(systemcoreclock/1000);

tmax = 2^24 *1000ms/168000000 = 99.86ms。

初始化系統定時器,1s 核心觸發 1000 次中斷,說白了定時 1ms,能夠成功

systick_config(systemcoreclock/1000);

初始化系統定時器,1s 核心觸發 10 次中斷,說白了定時 100ms,現象失敗

systick_config(systemcoreclock/10);

初始化系統定時器,1s 核心觸發 11 次中斷,說白了定時 90.90ms,能夠成功

systick_config(systemcoreclock/11);

總結:填寫中斷頻率值不能小於11,否則定時時間不準確。

#include "stm32f4xx.h"

#include "sys.h"

static gpio_inittypedef gpio_initstructe;

void deply_us(uint32_t t)

//最大值為99.8ms

void deply_ms(uint32_t t)

}int main(void) }

void systick_handler(void)

if(j == 330)

if(k == 1500)

if(l == 2200)

}

SysTick 系統定時器

本章參考資料 arm cortex m4f 技術參考手冊 4.5 章節 systick timer stk 和 4.48 章節 shprx,其中 stk 這個章節有 systick 的簡介和暫存器的詳細描述。因為 systick 是屬於 cm4 核心的外設,有關暫存器的定義和部分庫函式都在 core...

SysTick 系統定時器

本章參考資料 arm cortex m4f 技術參考手冊 4.5 章節 systick timer stk 和 4.48 章節 shprx,其中 stk 這個章節有 systick 的簡介和暫存器的詳細描述。因為 systick 是屬於 cm4 核心的外設,有關暫存器的定義和部分庫函式都在 core...

系統定時器SysTick

在lpc824內部有乙個特殊的定時器 系統定時器 systick 它位於cortex m0 核心裡面,是arm核心的一部分,主要用來給作業系統提供時間片輪轉的定時,一般固定為10ms的定時,所以中文也稱它為 嘀嗒 定時器 也稱 心跳 定時器 在不跑作業系統時,可以把它當作普通定時器來用,一般用來進行...