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

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

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

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

SysTick初始化函數(shù)和中斷服務函數(shù)詳解

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

掃碼添加小助手

加入工程師交流群

16.3.2.2.3SysTick初始化函數(shù)

列表3:代碼清單17?3 SysTick初始化函數(shù)

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

/**
*@brief啟動系統(tǒng)滴答計時器 SysTick
*@paramIT_frequency: 滴答計時器每秒的中斷次數(shù)
*@retval無
*/
voidSysTick_Init(uint32_t IT_frequency)
{
/* SystemCoreClock 在這里默認為 200M
* SystemCoreClock / 1000 1ms 中斷一次
* SystemCoreClock / 100000 10us 中斷一次
* SystemCoreClock / 1000000 1us 中斷一次
*/
IT_Period =SystemCoreClock/ IT_frequency;
uint32_t err =SysTick_Config (IT_Period);
assert(err==0);//capture error
}

SysTick_Init函數(shù)里面調(diào)用了SysTick_Config()這個固件庫函數(shù),通過設置該固件庫函數(shù)的形參,就決定了系統(tǒng)定時器經(jīng)過多少時間就產(chǎn)生一次中斷。

16.3.2.2.4SysTick中斷時間的計算

SysTick定時器的計數(shù)器是向下遞減計數(shù)的,計數(shù)一次的時間TDEC=1/CLKICLK,當重裝載寄存器中的值VALUELOAD減到0的時候,產(chǎn)生中斷,可知中斷一次的時間TINT=VALUELOAD*TDEC=VALUELOAD/CLKICLK,其中CLKICLK=200MHZ。

如果設置VALUELOAD為200,那中斷一次的時間TINT=200/200M=1us。不過1us的中斷沒啥意義,整個程序的重心都花在進出中斷上了,根本沒有時間處理其他的任務。

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

IT_Period =SystemCoreClock/ IT_frequency;//IT_frequency 為中斷的頻率 (單位為
Hz)
SysTick_Config(IT_Period)//IT_Period 為中斷一次的時間 (單位為時鐘節(jié)拍數(shù))

SysTick_Config()的形參我們配置為 IT_Period。例如,當IT_frequency為1000,IT_Period=SystemCoreClock/IT_frequency=200M/1000=200K,從剛剛分析我們知道這個形參的值最終是寫到重裝載寄存器LOAD中的,從而可知我們現(xiàn)在把SysTick定時器中斷一次的時間TINT=200k/200M=1ms。

16.3.2.2.5SysTick定時時間的計算

當設置好中斷時間TINT后,我們可以設置一個變量t,用來記錄進入中斷的次數(shù),那么變量t乘以中斷的時間TINT就可以計算出需要定時的時間。

16.3.2.2.6SysTick定時函數(shù)

現(xiàn)在我們定義一個延時函數(shù),類似官方的延時函數(shù)“R_BSP_SoftwareDelay”,形參為delay和unit,這兩個形參相乘就得出我們需要的延時時間 TSUM,因此進入中斷的次數(shù) t=TSUM/TINT。

列表4:代碼清單17?4 SysTick延時函數(shù)

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

/**
*@brief延時程序
*@paramdelay: 延時的單位時間
*@paramunit: 延時的單位
*@retval無
*/


voidSysTick_Delay(uint32_t delay, sys_delay_units_t unit)
{
uint32_tSumTime= delay * unit;//計算總延時時間 (單位為時鐘節(jié)拍數(shù))
IT_nums =SumTime/IT_Period;
while(IT_nums !=0);
}

SysTick_Delay()中我們等待IT_nums為0,當IT_nums為0的時候表示延時時間到。變量 IT_nums在中斷函數(shù)中遞減,即SysTick每進一次中斷即TINT的時間IT_nums遞減一次。

16.3.2.2.7sys_delay_units_t

列表5:代碼清單17?5 sys_delay_units_t

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

typedefenum
{
SYS_DELAY_UNITS_SECONDS=200000000,///< Requested delay amount?
→is?in?seconds
SYS_DELAY_UNITS_MILLISECONDS?=?200000,?///< Requested delay amount?
→is?in?milliseconds
SYS_DELAY_UNITS_MICROSECONDS?=?200///< Requested delay amount?
→is?in?microseconds
} sys_delay_units_t;

16.3.2.2.8SysTick中斷服務函數(shù)

列表6:代碼清單17?6 SysTick中斷服務函數(shù)

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

/**
*@briefSysTick 的中斷服務函數(shù)
*@param無
*@retval無
*/
externvoidSysTick_Handler(void);//需要先 extern 聲明一下避免編譯器警告
voidSysTick_Handler(void)
{
if(IT_nums !=0x00)
{
IT_nums--;
}
}

16.3.2.2.9hal_entry入口函數(shù)

列表7:

代碼清單17?7由main函數(shù)轉(zhuǎn)入的hal_entry函數(shù)

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

voidhal_entry(void)
{
/*TODO:add your own code here */
R_BSP_PinAccessEnable ();//啟用對 PFS 寄存器的訪問, 因為后面寫 IO 口都用
BSP 內(nèi)聯(lián)函數(shù)
SysTick_Init(1000);//初始化系統(tǒng)時鐘, 設置中斷頻率為 1000Hz


while(1)
{
R_BSP_PinWrite (LED_G, BSP_IO_LEVEL_LOW);//點亮綠色 LED
SysTick_Delay(1, SYS_DELAY_UNITS_SECONDS);//延時 1s
R_BSP_PinWrite (LED_G, BSP_IO_LEVEL_HIGH);//熄滅綠色 LED
SysTick_Delay(1, SYS_DELAY_UNITS_SECONDS);//延時 1s
}
#ifBSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}

主函數(shù)中初始化了SysTick,然后在一個while循環(huán)中以1s的頻率讓LED閃爍。

08d529c8-976a-11f0-8c8f-92fbcf53809c.png

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

    關注

    5

    文章

    912

    瀏覽量

    43538
  • 定時器
    +關注

    關注

    23

    文章

    3359

    瀏覽量

    121666
  • 函數(shù)
    +關注

    關注

    3

    文章

    4405

    瀏覽量

    66798
  • Systick
    +關注

    關注

    0

    文章

    67

    瀏覽量

    13860

原文標題:SysTick初始化函數(shù)、定時函數(shù)、延時函數(shù)、中斷服務函數(shù)——瑞薩RA系列FSP庫開發(fā)實戰(zhàn)指南(42)

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RT-Thread自動初始化詳解

    我們知道,在寫裸機程序時,當我們完成硬件初始化后,就需要在主函數(shù)中進行調(diào)用。當我們使用RT-Thread后,完全不需要這樣做了,我們可以將硬件等自動初始化。 RT-Thread?自動初始化
    的頭像 發(fā)表于 06-25 21:38 ?1.3w次閱讀
    RT-Thread自動<b class='flag-5'>初始化</b><b class='flag-5'>詳解</b>

    自動初始化機制原理詳解

    自動初始化機制是指初始化函數(shù)不需要被顯式調(diào)用,只需要在函數(shù)定義處通過宏定義的方式進行申明,就會在系統(tǒng)啟動過程中被執(zhí)行。這篇文章就來探索一下其中的奧秘, 簡單理解其原理!
    的頭像 發(fā)表于 12-16 09:33 ?1734次閱讀
    自動<b class='flag-5'>初始化</b>機制原理<b class='flag-5'>詳解</b>

    請問哪個函數(shù)初始化SysTick_Handler中斷?

    比如普通的定時器中斷,通過調(diào)用TIM的configuration函數(shù)初始化定時器以后,然后就每隔一段時間就能自動進入相應定時器的中斷。那請問是哪個
    發(fā)表于 08-14 04:35

    STM32外部中斷端口初始化函數(shù)

    ;/******************************************************************************** 函 數(shù) 名: exti_init* 函數(shù)功能 : 外部中斷2端口初始化
    發(fā)表于 08-13 09:27

    配置SYSTICK

    SysTick_Handler中也無需對中斷標志進行清零(參考exit外部中斷服務函數(shù))2.要注意的是關于
    發(fā)表于 08-17 06:22

    如何用STM32定時器的初始化函數(shù)中斷函數(shù)?

    如何用STM32定時器的初始化函數(shù)中斷函數(shù)?
    發(fā)表于 12-16 06:43

    中斷初始化中斷函數(shù)的代碼示例

    前面一節(jié)講解了中斷初始化中斷函數(shù),下面是關于中斷的代碼示例。#include #define uint unsigned int#defi
    發(fā)表于 01-24 07:09

    USART初始化結(jié)構(gòu)體詳解

    USART 初始化結(jié)構(gòu)體詳解標準庫函數(shù)對每個外設都建立了一個初始化結(jié)構(gòu)體,比如USART_InitTypeDef,結(jié)構(gòu)體成員用于設置外設工作參數(shù),并由外設
    發(fā)表于 02-22 06:08

    SEED-DEC2812函數(shù)

    SEED-DEC2812函數(shù):一、 SEED-DEC2812 系統(tǒng)初始化函數(shù)二、 系統(tǒng)PIE 中斷矢量表控制寄存器的操作函數(shù).
    發(fā)表于 02-23 15:31 ?40次下載

    SEED-DEC2812初始化函數(shù)說明

    SEED-DEC2812系統(tǒng)初始化函數(shù)
    發(fā)表于 04-13 09:05 ?11次下載
    SEED-DEC2812<b class='flag-5'>初始化</b><b class='flag-5'>函數(shù)</b>說明

    UCOS2系統(tǒng)內(nèi)核講述(二)_ 初始化調(diào)用函數(shù)

    UCOS2系統(tǒng)內(nèi)核講述(二)_初始化調(diào)用函數(shù)
    的頭像 發(fā)表于 03-25 09:57 ?2281次閱讀
    UCOS2系統(tǒng)內(nèi)核講述(二)_ <b class='flag-5'>初始化</b>調(diào)用<b class='flag-5'>函數(shù)</b>

    CC2530中斷初始化中斷函數(shù)

    相關寄存器在cc2530中文數(shù)手冊中2.4小節(jié)中斷初始化其實中斷初始化可以參照引腳的初始化,即4個寄存器(PxSEL,PxDIR,PxIN
    發(fā)表于 11-29 19:06 ?9次下載
    CC2530<b class='flag-5'>中斷</b><b class='flag-5'>初始化</b>和<b class='flag-5'>中斷</b><b class='flag-5'>函數(shù)</b>

    STM32—關于SYSTICK系統(tǒng)時鐘的詳解及學習筆記

    SysTick_Handler中也無需對中斷標志進行清零(參考exit外部中斷服務函數(shù))2.要注意的是關于
    發(fā)表于 11-30 15:51 ?15次下載
    STM32—關于<b class='flag-5'>SYSTICK</b>系統(tǒng)時鐘的<b class='flag-5'>詳解</b>及學習筆記

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

    函數(shù)參數(shù)的確定時鐘中斷設置函數(shù)SysTick_Config(uint32_t ticks)補充說明:ul后綴表示什么?Systick滴答時鐘
    發(fā)表于 12-04 17:06 ?1次下載
    <b class='flag-5'>Systick</b>定時器幾個簡單的<b class='flag-5'>函數(shù)</b>簡介

    OP-TEE的內(nèi)核初始化函數(shù)調(diào)用

    generic_boot_init_primary函數(shù)內(nèi)容 generic_boot_init_primary函數(shù)是OP-TEE建立系統(tǒng)運行環(huán)境的入口函數(shù),該函數(shù)會進行建立線程運行空間
    的頭像 發(fā)表于 11-02 18:18 ?1520次閱讀
    OP-TEE的內(nèi)核<b class='flag-5'>初始化</b><b class='flag-5'>函數(shù)</b>調(diào)用