色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

CW32系統滴答SysTick定時器介紹

武漢芯源半導體有限公司 ? 2023-01-05 13:53 ? 次閱讀

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

1.SysTick工作原理

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

它的特點是:

? 24 位遞減計數器

? 自動重裝載能力

? 當計數器達到 0 時產生可屏蔽的系統中斷

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:關閉SysTick功能,1:開啟SysTick功能);

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

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

第3為:COUNTFLAG,SysTick計數比較標志,如果在上次讀取本寄存器后,SysTick已經數到0了,則該位為1,如果讀取該位,該位自動清零。

__IOM uint32_t LOAD重載寄存器:

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

__IOM uint32_t VAL當前值寄存器:

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

__IM uint32_t CALIB校準值寄存器:

只讀寄存器,主要存放10mS校準值,該值和MCU相關。

3.操控SysTick定時器

在MDK開發環境中,我們不必要非得去操作每一個寄存器,可以通過調用CW函數庫中的函數來進行相關的操作。

void InitTick(uint32_t HclkFreq)

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

__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)

初始化系統計時器及其中斷,并啟動。

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

設置SysTick重裝載值

(2)NVIC_SetPriority(SysTick_IRQn,

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

設置SysTick定時器中斷優先級

(3) Tick->VAL = 0UL;

加載SysTick計數器值

(4) SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |

SysTick_CTRL_TICKINT_Msk |

SysTick_CTRL_ENABLE_Msk;

設置SysTick IRQ中斷使能,并開啟SysTick定時器

4.Systick延時功能實現

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

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

int main(void)

{

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

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

GPIO_InitTypeDef GPIO_InitStructure1 = {0} ; //初始化對應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口電平反轉

SysTickDelay (100);//延時100mS

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

SysTickDelay (100);//延時100mS

}

}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6037

    文章

    44566

    瀏覽量

    636027
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17171

    瀏覽量

    351512
  • 微控制
    +關注

    關注

    1

    文章

    51

    瀏覽量

    14503
  • 定時器
    +關注

    關注

    23

    文章

    3251

    瀏覽量

    114939
收藏 人收藏

    評論

    相關推薦

    求助,關于STM32F030K6低功耗停止模式下SysTick的問題求解

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

    定時器的工作方式介紹

    定時器是計算機和嵌入式系統中常見的一種硬件模塊,用于實現定時和計數功能。定時器的工作方式通常由一組寄存來控制,這些寄存
    的頭像 發表于 07-12 10:29 ?1015次閱讀

    鴻蒙開發系統基礎能力:Timer定時器

    設置一個定時器,該定時器定時器到期后執行一個函數。
    的頭像 發表于 06-28 11:33 ?1015次閱讀
    鴻蒙開發<b class='flag-5'>系統</b>基礎能力:Timer<b class='flag-5'>定時器</b>

    武漢芯源半導體CW32F030K8T7在即熱式熱水的應用介紹

    捕獲/比較通道和3對互補PWM輸出,死區時間和靈活的同步功能;四組16位通用定時器;三組16位基本定時器;窗口看門狗定時器;獨立看門狗定時器; 圖:
    發表于 06-06 14:17

    【項目展示】基于CW32的遙控循跡小車

    CW32循跡小車.zip_免費高速下載|百度網盤-分享無限制? 一、概述 CW32循跡、遙控小車具有循跡和遙控兩種功能,小車的硬件模塊由CW32F030C8T6小藍板、智能小車控制底板、BT04-E
    的頭像 發表于 05-31 17:33 ?1341次閱讀
    【項目展示】基于<b class='flag-5'>CW32</b>的遙控循跡小車

    CW32數字電壓電流表軟件教程-實驗四:數碼管動態顯示

    顯示不同的值需要用到CW32定時器功能,在定時器的中斷服務程序里面執行顯示刷新的動作。有關CW32定時器和中斷的相關知識請查看鏈接:【
    的頭像 發表于 05-31 15:23 ?537次閱讀
    <b class='flag-5'>CW32</b>數字電壓電流表軟件教程-實驗四:數碼管動態顯示

    CW32使用DMA單通道、定時器觸發ADC實現了多路AD采集

    本測試樣例基于CW32F030C8T6MCU,使用DMA單通道、定時器觸發ADC實現了12路AD采集。
    的頭像 發表于 05-24 09:29 ?852次閱讀
    <b class='flag-5'>CW32</b>使用DMA單通道、<b class='flag-5'>定時器</b>觸發ADC實現了多路AD采集

    如何實現一個軟件定時器

    在Linux,uC/OS,FreeRTOS等操作系統中,都帶有軟件定時器,原理大同小異。典型的實現方法是:通過一個硬件定時器產生固定的時鐘節拍,每次硬件定時器中斷到,就對一個全局的時間
    的頭像 發表于 04-29 11:00 ?683次閱讀

    CW32量產燒錄工具

    本節主要介紹CW32微控制的燒錄CW-Writer,以及與之配合的軟件CW-Programm
    的頭像 發表于 04-25 15:22 ?1416次閱讀
    <b class='flag-5'>CW32</b>量產燒錄工具

    CW32快速開發入門

    CW32快速開發入門
    的頭像 發表于 04-24 18:56 ?2000次閱讀
    <b class='flag-5'>CW32</b>快速開發入門

    操作FreeRTOS時,執行__WFI()導致系統滴答中斷無法喚醒設備怎么解決?

    內核時鐘全部關閉了,導致滴答中斷無法觸發,不知道是不是這樣的原因 2、如果__WFI()無法使用滴答中斷喚醒,那能否用普通定時器喚醒,怎么樣能夠讓普通定時器去替代
    發表于 04-24 08:29

    s7200定時器的五種故障介紹

    定時器或CPU故障:如果定時器本身或PLC的CPU出現故障,也可能導致定時器無法復位。此時,需要檢查定時器和CPU的工作狀態,確保其正常運行。
    的頭像 發表于 04-03 17:08 ?2539次閱讀

    ?PLC定時器介紹

    定時器是PLC中重要的編程元件,是累計時間增量的內部器件。大部分自動控制領域都需要定時器進行延時控制,靈活地使用定時器可以編制出復雜的控制程序。
    發表于 03-22 12:36 ?2449次閱讀
    ?PLC<b class='flag-5'>定時器</b><b class='flag-5'>介紹</b>

    使用555定時器的可調雙定時器電路

    定時器 IC 555 是最通用和最常用的 IC 之一,因為它的應用范圍更廣,如 PWM放大器、延遲定時器、開關電路、占空比選擇、時鐘脈沖發生等。這也可用于各種應用,如精確
    的頭像 發表于 02-25 15:16 ?2277次閱讀
    使用555<b class='flag-5'>定時器</b>的可調雙<b class='flag-5'>定時器</b>電路

    555定時器的基本功能 555定時器的工作原理及其應用

    555定時器是一種非常常見和常用的集成電路,它具有廣泛的應用領域,例如計時、頻率分頻、脈沖寬度調制等。本文將詳細介紹555定時器的基本功能、工作原理以及應用。 一、555定時器的基本功
    的頭像 發表于 01-18 11:12 ?1.5w次閱讀
    主站蜘蛛池模板: 一个人HD高清在线观看免费视频| 2018高清国产一区二区三区| 成3d漫二区三区四区| 97影院理论午夜伦不卡偷| 973午夜伦伦电影论片| jizzhd中国| 国产99热在线观看| 国产久青青青青在线观看| 黑人操白逼| 免费国产麻豆传| 色欲AV人妻精品麻豆AV| 亚洲 日本 欧美 中文字幕| 翘臀后进美女白嫩屁股视频| 日本在线免费播放| 午夜影院c绿象| 在教室伦流澡到高潮HNP视频| 97色香蕉在线| 国产A级毛片久久久久久久| 国产综合在线观看| 美女扒开尿孔| 入禽太深免费观看| 亚洲色婷婷久久精品AV蜜桃久久| 最近的2019中文字幕国语| 成人在免费视频手机观看网站| 国产系列视频二区| 美女露出逼| 天堂色| 在线观看视频国产| 超碰超碰视频在线观看| 国产在线午夜| 欧美高清一区二区三| 午夜想想爱| 99re在这里只有精品| 国产精品久久久久精品A片软件 | 神马影院午夜理论二| 亚洲视频精品| 纯肉小黄文高H| 成人性生交大片免费看4| 国产在线精彩亚洲久久| 男女牲交全过程免费播放| 无人区乱码1区2区3区网站|