99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

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

武漢芯源半導(dǎo)體有限公司 ? 2023-01-05 13:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Cortex-M0+處理器中內(nèi)置有一個SysTick定時器,通常用于嵌入式操作系統(tǒng)的多任務(wù)切換,在不使用操作系統(tǒng)的應(yīng)用中,亦可作為其它用途,如定時、計時或者為需要周期性執(zhí)行的任務(wù)提供中斷源。

1.SysTick工作原理

SysTick定時器內(nèi)部含有一個24位的遞減計數(shù)器,當(dāng)計數(shù)減至0時,會從SysTick的重裝載寄存器中取值作為計數(shù)器的初始值,同時可以選擇在這個時候產(chǎn)生中斷(異常號:15)。例如設(shè)置重裝載寄存器為100,那么當(dāng)計數(shù)減為0時,就會重新復(fù)位為100繼續(xù)遞減計數(shù)。

它的特點是:

? 24 位遞減計數(shù)器

? 自動重裝載能力

? 當(dāng)計數(shù)器達到 0 時產(chǎn)生可屏蔽的系統(tǒng)中斷

2.SysTick寄存器介紹

在core_cm0plus.h中展示了四種寄存器,我們將一一介紹:

typedef struct

{

__IOM uint32_t CTRL;

/*!< Offset: 0x000 (R/W)? SysTick Control and Status Register */

__IOM uint32_t LOAD;

/*!< Offset: 0x004 (R/W)? SysTick Reload Value Register */

__IOM uint32_t VAL;

/*!< Offset: 0x008 (R/W)? SysTick Current Value Register */

__IM uint32_t CALIB;

/*!< Offset: 0x00C (R/ )? SysTick Calibration Register */

} SysTick_Type;

IOM uint32_t CTRL控制寄存器:

第0位:ENABLE,SysTick使能位(0:關(guān)閉SysTick功能,1:開啟SysTick功能);

第1位:TICKINT,SysTick中斷使能位(0:關(guān)閉SysTick中斷,1:開啟SysTick中斷);

第2位:CLKSOURCE,SysTick時鐘選擇(1:使用HCLK,0:使用參考時鐘頻率);

第3為:COUNTFLAG,SysTick計數(shù)比較標(biāo)志,如果在上次讀取本寄存器后,SysTick已經(jīng)數(shù)到0了,則該位為1,如果讀取該位,該位自動清零。

__IOM uint32_t LOAD重載寄存器:

24位的寄存器,最大計數(shù)0xFFFFFF。當(dāng)SysTick計數(shù)器遞減至0時,重載寄存器中的值就會被重裝載,繼續(xù)開始遞減。

__IOM uint32_t VAL當(dāng)前值寄存器:

24位的寄存器,讀取時返回當(dāng)前計數(shù)器的計數(shù)值,寫任何值都會使之清零,同時還會清除SysTick 控制寄存器中的COUNTFLAG 標(biāo)志。

__IM uint32_t CALIB校準(zhǔn)值寄存器:

只讀寄存器,主要存放10mS校準(zhǔn)值,該值和MCU相關(guān)。

3.操控SysTick定時器

在MDK開發(fā)環(huán)境中,我們不必要非得去操作每一個寄存器,可以通過調(diào)用CW函數(shù)庫中的函數(shù)來進行相關(guān)的操作。

void InitTick(uint32_t HclkFreq)

初始化SysTick滴答定時器,帶入的參數(shù)為HCLK的頻率,如HCLK為24MHz,則帶入?yún)?shù)為24000000。該函數(shù)會調(diào)用uint32_t SysTick_Config(uint32_t ticks)函數(shù)完成SysTick定時器的相關(guān)配置并啟動。SysTick默認(rèn)為1mS定時器,如果需要修改定時周期,則需要修改uint32_t SysTick_Config(uint32_t ticks)函數(shù)中重裝載值寄存器配置。

__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)

初始化系統(tǒng)計時器及其中斷,并啟動。

(1) SysTick->LOAD = (uint32_t)(ticks - 1UL);

設(shè)置SysTick重裝載值

(2)NVIC_SetPriority(SysTick_IRQn,

(1UL << __NVIC_PRIO_BITS) - 1UL);? ? ? ? ? ? ? ? ? ? ? ??

設(shè)置SysTick定時器中斷優(yōu)先級

(3) Tick->VAL = 0UL;

加載SysTick計數(shù)器值

(4) SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |

SysTick_CTRL_TICKINT_Msk |

SysTick_CTRL_ENABLE_Msk;

設(shè)置SysTick IRQ中斷使能,并開啟SysTick定時器

4.Systick延時功能實現(xiàn)

對于mS級及以上的延時,可在完成SysTick定時器初始化后,通過SysTickDelay(uint32_t Delay)函數(shù)來實現(xiàn),該函數(shù)的形參為需要延時的mS數(shù)。

對于uS級延時,一般通過調(diào)整__NOP 空指令數(shù)量來實現(xiàn),不建議用SysTick定時器來實現(xiàn),主要原因是M0+系統(tǒng)中固有的中斷響應(yīng)時間(壓棧和出棧)、中斷處理時間等會影響uS延時精度。

int main(void)

{

__RCC_GPIOC_CLK_ENABLE(); //設(shè)置HCLK為24MHz

InitTick( 24000000 ); //初始化SysTick為1mS定時器

GPIO_InitTypeDef GPIO_InitStructure1 = {0} ; //初始化對應(yīng)GPIO口

GPIO_InitStructure1.Pins = GPIO_PIN_3 ;

GPIO_InitStructure1.IT = GPIO_IT_NONE;

GPIO_InitStructure1.Mode = GPIO_MODE_OUTPUT_PP;

GPIO_Init(CW_GPIOC, &GPIO_InitStructure1);

PC03_SETHIGH(); // LED燈置高電平,低電平有效

while(1)

{

PC03_TOG(); //PC03口電平反轉(zhuǎn)

SysTickDelay (100);//延時100mS

PC03_TOG();//PC03口電平再次反轉(zhuǎn)

SysTickDelay (100);//延時100mS

}

}

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

    關(guān)注

    6067

    文章

    44991

    瀏覽量

    650392
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17981

    瀏覽量

    366799
  • 微控制
    +關(guān)注

    關(guān)注

    1

    文章

    51

    瀏覽量

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

    關(guān)注

    23

    文章

    3298

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    基于CW32L010的高性能溫控方案

    CW32L010提供了全套通信接口,包括兩路UART、一路SPI和一路I2C,方便連接各類傳感和顯示模塊。一組通用定時器、三組基本定時器、一組低功耗
    發(fā)表于 07-02 09:46

    如何使用新版本J-Flash編程CW32 MCU?

    CW32 MCU器件支持包JlinkDevices_WHXY.rar解壓到新建的JlinkDevices子目錄即可。 4、運行JFlash.exe,通過Jlink連接CW32 MCU測試板,進行編程測試
    的頭像 發(fā)表于 07-01 15:05 ?143次閱讀
    如何使用新版本J-Flash編程<b class='flag-5'>CW32</b> MCU?

    第二十章 TIM——基本定時器

    本章介紹了W55H32基本定時器TIM6、TIM7,16位向上計數(shù),含時鐘源、預(yù)分頻等,講解定時計算及初始化結(jié)構(gòu)體。
    的頭像 發(fā)表于 06-20 13:51 ?359次閱讀
    第二十章 TIM——基本<b class='flag-5'>定時器</b>

    第十二章 SysTick——系統(tǒng)定時器

    本章介紹了W55MH32的SysTick系統(tǒng)定時器,它是24位遞減計數(shù),含4個寄存,可配置
    的頭像 發(fā)表于 05-22 17:16 ?450次閱讀
    第十二章 <b class='flag-5'>SysTick</b>——<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>定時器</b>

    武漢芯源半導(dǎo)體CW32L010在兩輪車儀表的應(yīng)用介紹

    通用和基本定時器、一組低功耗定時器以及一組高級控制 PWM 定時器。 CW32L010 可以在 -40℃到 85℃的溫度范圍內(nèi)工作,供電電壓寬達 1.62V ~ 5.5V。支持 Sle
    發(fā)表于 05-13 14:06

    MCU定時器/計數(shù)

    架構(gòu)與功能特性? 定時器類型與配置? 高級控制定時器?:支持互補PWM輸出與剎車功能,適用于電機驅(qū)動等高精度控制場景。通用定時器?:集成輸入捕獲、輸出比較、單脈沖模式等基礎(chǔ)功能?。 系統(tǒng)
    的頭像 發(fā)表于 04-27 13:54 ?296次閱讀

    0STM32中的SysTick是個啥?咋用?(可下載)

    Cortex-Mx內(nèi)核內(nèi)部包含了一個SysTick定時器,SysTick是一個24位的倒計數(shù)定時器,當(dāng)計到0時,將從RELOAD寄存中自動
    發(fā)表于 04-01 14:52 ?0次下載

    代碼+案例+生態(tài):武漢芯源半導(dǎo)體CW32嵌入式開發(fā)實戰(zhàn)正式出版

    尊敬的各位電子工程師、嵌入式開發(fā)愛好者們:大家好!今天,我們懷著無比激動與自豪的心情,向大家宣布一個重大喜訊——武漢芯源半導(dǎo)體的單片機CW32正式出書啦!《基于ARMCortex-M0+的CW32
    的頭像 發(fā)表于 03-03 15:15 ?684次閱讀
    代碼+案例+生態(tài):武漢芯源半導(dǎo)體<b class='flag-5'>CW32</b>嵌入式開發(fā)實戰(zhàn)正式出版

    代碼+案例+生態(tài):武漢芯源半導(dǎo)體CW32嵌入式開發(fā)實戰(zhàn)正式出版

    關(guān)于 CW32 單片機的書籍。在這本書中,我們從最基礎(chǔ)的知識講起,詳細(xì)介紹CW32 單片機的硬件架構(gòu)、內(nèi)核特性、存儲系統(tǒng)以及各類外設(shè)功能。無論是剛剛踏入嵌入式開發(fā)領(lǐng)域的新手,還是經(jīng)
    發(fā)表于 03-03 15:14

    定時器已安排!開發(fā)小白看過來~

    本文將為您詳細(xì)介紹Air201定時器的基本操作與設(shè)置,確保您輕松上手,包教包會! 在Air201模組搭載的LuatOS系統(tǒng)中,定時器(timer)是一項基礎(chǔ)且關(guān)鍵的服務(wù)。 它允許開發(fā)者
    的頭像 發(fā)表于 12-31 14:30 ?440次閱讀
    <b class='flag-5'>定時器</b>已安排!開發(fā)小白看過來~

    武漢芯源半導(dǎo)體CW32芯片重慶地區(qū)線下技術(shù)交流會成功舉辦

    2024年10月19日,武漢芯源半導(dǎo)體授權(quán)CW32生態(tài)社區(qū)主辦的“CW32芯片-重慶地區(qū)技術(shù)交流會”在重慶市科技工作者眾創(chuàng)之家成功舉辦。此次交流會匯聚重慶地區(qū)的嵌入式開發(fā)工程師和電子信息類企業(yè)代表,共同探討CW32芯片在儀器儀表
    的頭像 發(fā)表于 10-24 10:55 ?974次閱讀

    【RA-Eco-RA0E1-32PIN-V1.0開發(fā)板試用】SysTick定時器點燈

    接上文【RA-Eco-RA0E1-32PIN-V1.0開發(fā)板試用】開箱+環(huán)境搭建 Systick定時器就是系統(tǒng)一個簡單的24位的倒計數(shù)定時器 寄存
    發(fā)表于 10-05 08:06

    定時器自動控制開關(guān)怎么設(shè)置

    定時器自動控制開關(guān)是一種常見的自動化設(shè)備,廣泛應(yīng)用于家庭、工業(yè)、農(nóng)業(yè)等多個領(lǐng)域。通過定時器,用戶可以預(yù)設(shè)時間,讓設(shè)備在特定時間自動開啟或關(guān)閉,從而實現(xiàn)節(jié)能、提高效率和便利性。 一、定時器
    的頭像 發(fā)表于 09-19 16:19 ?4082次閱讀

    定時器的基本組成和工作模式

    定時器是計算機或電子設(shè)備中常見的一個硬件或軟件組件,其主要功能是測量和控制時間的流逝。它在各種應(yīng)用中起著至關(guān)重要的作用,如操作系統(tǒng)調(diào)度、多媒體播放、網(wǎng)絡(luò)通信、工業(yè)自動化控制以及家電設(shè)備的定時功能等。
    的頭像 發(fā)表于 08-19 18:28 ?2770次閱讀

    求助,關(guān)于STM32F030K6低功耗停止模式下SysTick的問題求解

    定時器,停止模式就會被喚醒。 有點疑惑,滴答定時器這個時鐘從哪來的?進入停止模式后SYSCLK的時鐘來源是哪個提供的?
    發(fā)表于 07-23 08:11