秋霞午夜-乱轮视频-国产二区视频-久久综合国产-顶级毛片-欧美混交群体交-国产在线免费-久久综合99-日本熟妇毛茸茸茂密的森林-国产免费黄-草草福利影院-av小说图片-亚洲视频五区-av最新天-91中文在线观看-亚洲aaaaaaa-欧美视频xxx-毛片网站网址-99热6这里只有精品-无码人妻h动漫-亚洲射情-999国产在线-小伸进喷水网站-国产91调教-日本夜夜操-国产专区欧美专区-国产美女主播av-女人叫床高潮娇喘声录音mp3-日韩精品视频在线观看网站-亚洲国产福利视频

中科芯CKS32F4xx系列MCU SysTick定時(shí)器的原理及使用方法

來(lái)源:中科芯| 發(fā)布日期:2023-12-18 10:34

本課將為大家講解CKS32F4xx系列產(chǎn)品的SysTick定時(shí)器原理及使用方法。SysTick定時(shí)器也叫SysTick滴答定時(shí)器,屬于Cortex-M4內(nèi)核外設(shè)。SysTick定時(shí)器可以用于查詢延時(shí)、中斷延時(shí)以及測(cè)量函數(shù)運(yùn)行時(shí)間;在實(shí)時(shí)操作系統(tǒng)RTOS中作為滴答定時(shí)器,用于上下文切換。采用Cortex-M內(nèi)核的微處理都有SysTick定時(shí)器,方便不同處理器之間的軟件移植。SysTick定時(shí)器時(shí)鐘源可直接選取系統(tǒng)時(shí)鐘,還可以通過(guò)系統(tǒng)時(shí)鐘8分頻后取得。

SysTick定時(shí)器內(nèi)部是一個(gè)遞減的計(jì)時(shí)器,當(dāng)減到0時(shí),將從LOAD寄存器中自動(dòng)重裝定時(shí)器初始值,重新向下遞減計(jì)數(shù),如此循環(huán)往復(fù)。如果開(kāi)啟SysTick中斷,當(dāng)計(jì)數(shù)器減到0時(shí),SysTick可以生產(chǎn)異常,異常編號(hào)為15。

SysTick定時(shí)器寄存器

SysTick定時(shí)器內(nèi)部是一個(gè)24位向下遞減的計(jì)時(shí)器,包含4個(gè)寄存器,如圖。

圖1SysTick定時(shí)器框圖

1)STK_CTRL寄存器
STK_CTRL是SysTick定時(shí)器的控制及狀態(tài)寄存器,相應(yīng)功能如下:

2)STK_LOAD寄存器
STK_LOAD寄存器是SysTick定時(shí)器的重裝載數(shù)值寄存器,相應(yīng)功能如下:

3)STK_VAL寄存器
STK_VAL寄存器是SysTick定時(shí)器的當(dāng)前數(shù)值寄存器,相應(yīng)功能如下:

4)STK_CALIB寄存器
STK_CALIB寄存器是SysTick定時(shí)器的校準(zhǔn)數(shù)值定時(shí)器,用于利用片上硬件為軟件提供校準(zhǔn)信息,但使用情況較少。在CMSIS Core中,不需要使用SysTick校準(zhǔn)寄存器,因?yàn)镃MSIS Core提供了一個(gè)名為“SystemCoreClock”的軟件變量。此變量在系統(tǒng)初始化函數(shù)“SystemInit()”中設(shè)置,每次更改系統(tǒng)時(shí)鐘配置時(shí)也會(huì)更新。這種方法比使用SysTick CalibrationRegister的硬件方法靈活。校準(zhǔn)寄存器描述如下表:

查詢延時(shí)使用步驟

1)配置SysTick定時(shí)器時(shí)鐘源

2)加載延時(shí)計(jì)數(shù)值 3)清零計(jì)數(shù)器,啟動(dòng)定時(shí)器開(kāi)始遞減計(jì)數(shù) 4)等待計(jì)數(shù)結(jié)束 5)清零計(jì)數(shù),關(guān)閉定時(shí)器,延時(shí)結(jié)束 相關(guān)函數(shù)如下:

中斷方式延時(shí)使用步驟

1)配置SysTick定時(shí)器時(shí)鐘源

2)調(diào)用系統(tǒng)函數(shù)SysTick_Config(),開(kāi)啟中斷,配置中斷間隔
3)延時(shí)函數(shù)賦值延時(shí)變量,并等待延時(shí)變量遞減到0,達(dá)到精確延時(shí)效果
4)中斷函數(shù)中延時(shí)變量遞減到0 相關(guān)函數(shù)如下:

測(cè)量短時(shí)函數(shù)的執(zhí)行時(shí)間

SysTick計(jì)時(shí)器可用于計(jì)時(shí)測(cè)量。例如,可以使用以下代碼測(cè)量短函數(shù)的持續(xù)時(shí)間:

SysTick->CTRL = 0; // 禁用 SysTick

SysTick->LOAD = 0xFFFFFFFF; // 設(shè)置重裝寄存器到最大值

SysTick->VAL = 0; // 清零VAL

SysTick->CTRL = 0x5; // 使能SysTick, 使用處理器時(shí)鐘

while(SysTick->VAL != 0); // 等待重裝完畢

start_time = SysTick->VAL; // 較大的起始點(diǎn)

TestDelayFunc(); // 待測(cè)函數(shù)執(zhí)行時(shí)間

stop_time = SysTick->VAL; // 獲取執(zhí)行結(jié)束時(shí)間

cycle_count = start_time e stop_time;//計(jì)算函數(shù)執(zhí)行時(shí)間

由于SysTick是一個(gè)遞減計(jì)數(shù)器,因此start_time的值大于stop_time。如果待測(cè)函數(shù)執(zhí)行時(shí)間較長(zhǎng),這種情況必須啟用SysTick異常,并使用SysTick處理程序來(lái)計(jì)算SysTick計(jì)數(shù)器下溢的次數(shù)。

總結(jié)及注意事項(xiàng)

SysTick定時(shí)器是微處理器系統(tǒng)內(nèi)部定時(shí)器,提供精確的時(shí)間延時(shí)和計(jì)時(shí)功能。采用中斷方式延時(shí),需要考慮SysTick中斷優(yōu)先級(jí)較低,容易被打斷影響延時(shí);在嵌入式系統(tǒng)中,系統(tǒng)將使用SysTick計(jì)時(shí)器,應(yīng)用程序中則不可在使用SysTick;在系統(tǒng)在線調(diào)試停止時(shí),SysTick計(jì)時(shí)器將停止計(jì)時(shí)。


主站蜘蛛池模板: 淫话……粗话……脏话小说 | av黄色| 强h被cao哭高h打桩机崩溃 | 国产一级黄色电影 | 日韩精品人妻中文字幕有码 | 99这里只有精品 | 香蕉视频在线下载 | 国产激情综合五月久久 | www.国产精品 | 成人在线免费 | 欧美日韩精品 | 国产视频久久 | 国产激情综合五月久久 | 国产精品一二三区 | 久久久久久91香蕉国产 | 18在线观看 | 大香伊人| 黄色一区二区三区 | 午夜激情视频 | 国产乱子伦 | 国产在线小视频 | 女人床技48动态图 | 久久精品一区二区 | 激情综合五月 | 无码精品人妻一区二区三区漫画 | 欧美国产精品 | 一区二区在线视频 | 500部大龄熟乱视频 国精产品一区一区三区有限公司杨 | 在线一区 | 特级黄色录像 | 国产欧美日韩 | 欧美影院 | 天堂视频在线 | 夜夜嗨老熟女av一区二区三区 | 国产在线麻豆精品观看 | 国产一区二区视频在线观看 | 日韩小视频 | 午夜精品久久久久久久 | 亚洲天堂一区 | 精品九九 | 国产suv精品一区二区6 | 精品少妇人妻一区二区黑料社区 | av电影在线观看 | 亚洲免费在线 | 国产一二三 | 香蕉视频在线下载 | 欧美爱爱视频 | 中文字幕在线免费观看 |