chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SysTick系統(tǒng)滴答定時器簡介

瑞薩嵌入式小百科 ? 來源:野火電子 ? 2025-09-23 09:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

第16章

SysTick——系統(tǒng)定時器

本章參考資料

《DEFINITIVE GUIDE TO ARM CORTEX-M23 AND CORTEX-M33 PROCESSORS》-11.2章節(jié)SysTick Timer,《Cortex-M3內(nèi)核編程手冊》-4.5章節(jié)SysTick Timer(STK),和4.48章節(jié)SHPRx,這個章節(jié)有SysTick的簡介和寄存器的詳細描述。因為SysTick是屬于CORTEX-M33內(nèi)核的外設(shè),有關(guān)寄存器的定義和部分庫函數(shù)都在core_cm33.h這個頭文件中實現(xiàn)。所以學(xué)習(xí)SysTick的時候可以參考這兩個資料,一個是文檔,一個是源碼。

16.1

SysTick系統(tǒng)滴答定時器簡介

SysTick—系統(tǒng)定時器是屬于CM33內(nèi)核中的一個外設(shè),內(nèi)嵌在NVIC中。系統(tǒng)定時器是一個24bit的向下遞減的計數(shù)器,計數(shù)器每計數(shù)一次的時間為 1/SYSCLK,一般我們設(shè)置系統(tǒng)時鐘SYSCLK等于 200MHz。當(dāng)重裝載數(shù)值寄存器的值遞減到0的時候,系統(tǒng)定時器就產(chǎn)生一次中斷,以此循環(huán)往復(fù)。

因為SysTick是屬于CM33內(nèi)核的外設(shè),所以所有基于CM33內(nèi)核的單片機都具有這個系統(tǒng)定時器,使得軟件在CM33單片機中可以很容易的移植。系統(tǒng)定時器一般用于操作系統(tǒng),用于產(chǎn)生時基,維持操作系統(tǒng)的心跳。

16.2

SysTick寄存器介紹

SysTick—系統(tǒng)定時器有4個寄存器,簡要介紹如下。在使用SysTick產(chǎn)生定時的時候,只需要配置前三個寄存器,最后一個校準寄存器不需要使用。

表1:表17?1 SysTick寄存器匯總

2d934a62-92b3-11f0-8c8f-92fbcf53809c.png

表2:表17?2 SysTick控制及狀態(tài)寄存器

2df02066-92b3-11f0-8c8f-92fbcf53809c.png

表3:表17?3 SysTick重裝載數(shù)值寄存器

2e5e064e-92b3-11f0-8c8f-92fbcf53809c.png

表4:表17?4 SysTick當(dāng)前數(shù)值寄存器

2ec0b6c2-92b3-11f0-8c8f-92fbcf53809c.png

表5:表17?5 SysTick校準數(shù)值寄存器

2f1c1a3a-92b3-11f0-8c8f-92fbcf53809c.png

系統(tǒng)定時器的校準數(shù)值寄存器在定時實驗中不需要用到。本章不會詳細講解該寄存器,感興趣的讀者可自行研究。

16.3

使用SysTick定時實驗

利用SysTick產(chǎn)生1s的時基,LED以1s的頻率閃爍。

16.3.1

硬件設(shè)計

SysTick屬于單片機內(nèi)部的外設(shè),不需要額外的硬件電路,剩下的只需一個LED燈即可。

16.3.2

軟件設(shè)計

這里只講解核心的部分代碼,有些變量的設(shè)置,頭文件的包含等并沒有涉及到,完整的代碼請參考本章配套的工程。我們創(chuàng)建了兩個文件:bsp_SysTick.c和bsp_SysTick.h文件用來存放 SysTick驅(qū)動程序,中斷服務(wù)函數(shù)及相關(guān)宏定義。

16.3.2.1

編程要點

設(shè)置重加載寄存器的值

清除當(dāng)前數(shù)值寄存器的值

配置控制與狀態(tài)寄存器

16.3.2.2

代碼分析

SysTick屬于內(nèi)核的外設(shè),有關(guān)的寄存器定義和庫函數(shù)都在內(nèi)核相關(guān)的庫文件core_cm33.h中。

16.3.2.2.1SysTick配置庫函

列表1:代碼清單17?1 SysTick配置庫函數(shù)

左右滑動查看完整內(nèi)容

__STATIC_INLINEuint32_tSysTick_Config(uint32_tticks)
{
// 不可能的重加載值,超出范圍
if((ticks -1UL) > SysTick_LOAD_RELOAD_Msk) {
return(1UL);
}


// 設(shè)置重加載寄存器
SysTick->LOAD = (uint32_t)(ticks -1UL);


// 設(shè)置中斷優(yōu)先級
NVIC_SetPriority(SysTick_IRQn, (1UL<< __NVIC_PRIO_BITS) -?1UL);


// 設(shè)置當(dāng)前數(shù)值寄存器
SysTick->VAL =0UL;


// 設(shè)置系統(tǒng)定時器的時鐘源為 ICLK=200M
// 使能系統(tǒng)定時器中斷
// 使能定時器
SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
SysTick_CTRL_TICKINT_Msk |
SysTick_CTRL_ENABLE_Msk;
return(0UL);
}

用固件庫編程的時候我們只需要調(diào)用庫函數(shù) SysTick_Config()即可,形參ticks用來設(shè)置重加載寄存器的值,最大不能超過重加載寄存器的值224,當(dāng)重加載寄存器的值遞減到0的時候產(chǎn)生中斷,然后重加載寄存器的值又重新被裝載并再次遞減計數(shù),以此循環(huán)往復(fù)。緊隨其后設(shè)置好中斷優(yōu)先級,最后配置系統(tǒng)定時器的時鐘等于ICLK=200M,使能定時器和定時器中斷,這樣系統(tǒng)定時器就配置好了,一個庫函數(shù)搞定。

SysTick_Config()庫函數(shù)主要配置了SysTick中的三個寄存器:LOAD、VAL和CTRL,有關(guān)具體

的部分看代碼注釋即可。

16.3.2.2.2配置SysTick中斷優(yōu)先級

SysTick_Config()庫函數(shù)主要配置了SysTick中的三個寄存器:LOAD、VAL和CTRL,有關(guān)具體的部分看代碼注釋即可。其中還調(diào)用了函數(shù)庫函數(shù) NVIC_SetPriority()來配置系統(tǒng)定時器的中斷優(yōu)先級,該庫函數(shù)也在core_cm33.h中定義,原型如下:

列表2:代碼清單17?2 NVIC中斷優(yōu)先級配置函數(shù)

左右滑動查看完整內(nèi)容

__STATIC_INLINEvoid__NVIC_SetPriority(IRQn_Type IRQn,uint32_tpriority)
{
if((int32_t)(IRQn) >=0)
{
NVIC->IPR[((uint32_t)IRQn)] = (uint8_t)((priority << (8U?- __NVIC_
→PRIO_BITS)) & (uint32_t)0xFFUL);
}
else
{
SCB->SHPR[(((uint32_t)IRQn) &0xFUL)-4UL] = (uint8_t)((priority <

2fe17bcc-92b3-11f0-8c8f-92fbcf53809c.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6071

    文章

    45254

    瀏覽量

    659933
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    4

    文章

    1427

    瀏覽量

    42208
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3347

    瀏覽量

    120915
  • Systick
    +關(guān)注

    關(guān)注

    0

    文章

    66

    瀏覽量

    13793

原文標題:SysTick系統(tǒng)定時器——瑞薩RA系列FSP庫開發(fā)實戰(zhàn)指南(41)

文章出處:【微信號:瑞薩嵌入式小百科,微信公眾號:瑞薩嵌入式小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    系統(tǒng)滴答定時器SYSTICK

    二、系統(tǒng)滴答定時器SYSTICK學(xué)習(xí)了cm3系統(tǒng)系統(tǒng)滴答
    發(fā)表于 12-25 23:54

    STM32 SysTick定時器簡介

    STM32 SysTick定時器簡介概念及工作原理概念定時器,能夠定時,計數(shù)的器件稱之為定時器
    發(fā)表于 08-18 06:56

    對于Systick滴答定時器的理解

    在ARM Cortex-M3內(nèi)核中有一個Systick定時器,一個24bit的倒計數(shù)定時器,當(dāng)計數(shù)到0時,它就會從Load寄存中自動重裝定時
    發(fā)表于 08-18 08:01

    Systick定時器簡介

    Systick定時器簡介Systick定時器就是系統(tǒng)滴答
    發(fā)表于 08-19 07:02

    最簡單的滴答定時器程序簡介

    最簡單的滴答定時器程序簡介SysTick實驗配置步驟和方法1.設(shè)置滴答的次數(shù)2.設(shè)置時長3.停止計數(shù)實驗代碼
    發(fā)表于 01-20 08:16

    SysTick系統(tǒng)定時器

    程序簡介 -工程名稱:SysTick系統(tǒng)定時器 -實驗平臺: 秉火STM32 F429 開發(fā)板 -MDK版本:5.16 -ST固件庫版本:1.5.1 【 !】功能
    發(fā)表于 12-12 19:12 ?7次下載

    stm32的systick滴答定時器)實現(xiàn)精準延時

    stm32具有systick定時器,該外設(shè)屬于內(nèi)核外設(shè),時鐘一般選擇系統(tǒng)時鐘的8分頻。使能后,計數(shù)寄存遞減到0后,會自動重裝值。需要注意的是滴答
    發(fā)表于 11-23 18:21 ?10次下載
    stm32的<b class='flag-5'>systick</b>(<b class='flag-5'>滴答</b><b class='flag-5'>定時器</b>)實現(xiàn)精準延時

    利用systick實現(xiàn)1s定時

    滴答定時器簡介系統(tǒng)定時器SysTick是屬于CM3內(nèi)核中的一個外設(shè),相關(guān)寄存
    發(fā)表于 11-25 11:06 ?26次下載
    利用<b class='flag-5'>systick</b>實現(xiàn)1s<b class='flag-5'>定時</b>

    STM32入門(十五)----SysTick系統(tǒng)定時器

    SysTick系統(tǒng)定時器SysTick簡介SysTick框圖
    發(fā)表于 12-01 15:06 ?8次下載
    STM32入門(十五)----<b class='flag-5'>SysTick</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>定時器</b>

    STM32F4: Systick滴答定時器-延時函數(shù)講解(五)

    CM3,CM4內(nèi)核芯片,都有Systick定時器。Systick定時器常用來做延時,或者實時系統(tǒng)的心跳時鐘。這樣可以節(jié)省MCU資源,不用浪費
    發(fā)表于 12-01 15:21 ?15次下載
    STM32F4: <b class='flag-5'>Systick</b><b class='flag-5'>滴答</b><b class='flag-5'>定時器</b>-延時函數(shù)講解(五)

    Systick定時器幾個簡單的函數(shù)簡介

    目錄Systick定時器Systick定時器是什么?SysTick的四個寄存寄存
    發(fā)表于 12-04 17:06 ?1次下載
    <b class='flag-5'>Systick</b><b class='flag-5'>定時器</b>幾個簡單的函數(shù)<b class='flag-5'>簡介</b>

    SysTick 定時器

    11.1關(guān)于 SysTick 定時器SysTick定時器(又名系統(tǒng)滴答
    發(fā)表于 12-05 14:51 ?9次下載
    <b class='flag-5'>SysTick</b> <b class='flag-5'>定時器</b>

    STM32筆記(七)---Systick系統(tǒng)定時器

    SysTick系統(tǒng)定時器文章目錄SysTick系統(tǒng)定時器一、 概念1-1
    發(fā)表于 12-23 20:01 ?1次下載
    STM32筆記(七)---<b class='flag-5'>Systick</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>定時器</b>

    初學(xué)stm32-Systick滴答時鐘定時

    滴答時鐘的實現(xiàn)滴答定時器概述滴答定時器相關(guān)函數(shù)滴答定時器
    發(fā)表于 12-31 19:46 ?15次下載
    初學(xué)stm32-<b class='flag-5'>Systick</b><b class='flag-5'>滴答</b>時鐘<b class='flag-5'>定時</b>

    【STM32】SysTick滴答定時器(delay延時函數(shù)講解)

    Systick定時器,是一個簡單的定時器,對于CM3、CM4內(nèi)核芯片,都有Systick定時器。Syst
    發(fā)表于 02-10 10:35 ?13次下載
    【STM32】<b class='flag-5'>SysTick</b><b class='flag-5'>滴答</b><b class='flag-5'>定時器</b>(delay延時函數(shù)講解)