0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

瑞薩MCU RA8系列教程:RA8單片機(jī)SysTick使用描述

瑞薩MCU小百科 ? 來(lái)源: 瑞薩MCU小百科 ? 2025-03-27 14:27 ? 次閱讀
每個(gè)Cortex-M內(nèi)核都集成了一個(gè)SysTick模塊,那是因?yàn)檫@個(gè)模塊幾乎是單片機(jī)項(xiàng)目必備的一個(gè)(定時(shí)器)功能。
不管是最新的Cortex-M85內(nèi)核,還是經(jīng)典的Cortex-M3內(nèi)核單片機(jī),都集成了SysTick模塊。

cm3.h與cm85.h

單片機(jī)開(kāi)發(fā)者,接觸最多的就是core_cm3.h(core_cm85.h)文件,這里定義了與內(nèi)核相關(guān)的大部分內(nèi)容,平時(shí)我們調(diào)用最多也是這里的接口。
我們對(duì)比一下這兩個(gè)源文件: e306d75e-0ac0-11f0-9310-92fbcf53809c.png

通過(guò)對(duì)比源代碼,你會(huì)直觀地發(fā)現(xiàn),cm85比cm3代碼行數(shù)明顯大多了,1943行和4672行。當(dāng)然,行數(shù)多了這么多,左側(cè)紅色(差異)部分也比較多。

雖然,左側(cè)“紅色”比較多,但大部分都是多出來(lái)的行數(shù)以及宏定義。仔細(xì)對(duì)比,其實(shí)很多都是一樣的,比如我們常用的系統(tǒng)復(fù)位函數(shù):e3270bc8-0ac0-11f0-9310-92fbcf53809c.png ?
__NO_RETURN __STATIC_INLINEvoid__NVIC_SystemReset(void)
{
__DSB();                             /* Ensure all outstanding memory accesses included
                                   buffered write are completed before reset */
SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) ? ?|
             (SCB->AIRCR& SCB_AIRCR_PRIGROUP_Msk) |
              SCB_AIRCR_SYSRESETREQ_Msk  );    /* Keep priority group unchanged */
__DSB();                             /* Ensure completion of memory access */


for(;;)                             /* wait until reset */
 {
 __NOP();
 }
}

再比如系統(tǒng)Tick配置函數(shù):

e3452414-0ac0-11f0-9310-92fbcf53809c.png ?
__STATIC_INLINEuint32_tSysTick_Config(uint32_tticks)
{
if((ticks -1UL) > SysTick_LOAD_RELOAD_Msk)
 {
 return(1UL);                         /* Reload value impossible */
 }


 SysTick->LOAD = (uint32_t)(ticks -1UL);            /* set reload register */
NVIC_SetPriority(SysTick_IRQn, (1UL<< __NVIC_PRIO_BITS) -?1UL);/* set Priority for Systick Interrupt */
 SysTick->VAL  =0UL;                      /* Load the SysTick Counter Value */
 SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
         SysTick_CTRL_TICKINT_Msk  |
         SysTick_CTRL_ENABLE_Msk;            /* Enable SysTick IRQ and SysTick Timer */
return(0UL);                          /* Function successful */
}

其實(shí),你會(huì)發(fā)現(xiàn),在Cortext-M3單片機(jī)上常用的這些函數(shù)接口,基本和CM85一樣,這也說(shuō)明CM85大部分接口向下兼容CM3。

RA8單片機(jī)SysTick使用描述

這里結(jié)合瑞薩RA8D1(Cortex-M85內(nèi)核)單片機(jī)給大家講述一下SysTick的用法以及描述其源碼。

使用e2studio以及fsp軟件包

工具自帶的軟件包其實(shí)是最實(shí)用的,這里以IO翻轉(zhuǎn),SysTick延時(shí)為例,手把手教大家創(chuàng)建一個(gè)工程,并演示效果。

1

打開(kāi)e2studio創(chuàng)建單片機(jī)項(xiàng)目

e365a310-0ac0-11f0-9310-92fbcf53809c.jpge37b9698-0ac0-11f0-9310-92fbcf53809c.png我們命名項(xiàng)目名稱為:RA8D1_SysTicke390bbc2-0ac0-11f0-9310-92fbcf53809c.png選擇對(duì)應(yīng)芯片型號(hào):R7FA8D1BECe3a83e46-0ac0-11f0-9310-92fbcf53809c.png ?e3c5dd66-0ac0-11f0-9310-92fbcf53809c.pnge3e2cd0e-0ac0-11f0-9310-92fbcf53809c.pnge3fb0e6e-0ac0-11f0-9310-92fbcf53809c.pnge4161cae-0ac0-11f0-9310-92fbcf53809c.png ? ?

基本上只需要?jiǎng)觿?dòng)鼠標(biāo)“點(diǎn)一點(diǎn)”,一個(gè)完整的工程就創(chuàng)建好了。

2

配置工程

這里配置一些基礎(chǔ)的信息,我們使用一個(gè)IO(PA01)來(lái)測(cè)試一下SysTick延時(shí)時(shí)間。

e4334aae-0ac0-11f0-9310-92fbcf53809c.png

配置時(shí)鐘樹(shù):

e45427ba-0ac0-11f0-9310-92fbcf53809c.png配置輸出Hex文件:e474072e-0ac0-11f0-9310-92fbcf53809c.pnge4974e8c-0ac0-11f0-9310-92fbcf53809c.png ?

3

演示

這里只是簡(jiǎn)單演示Demo,我們添加一個(gè)IO翻轉(zhuǎn)來(lái)測(cè)試SysTick延時(shí)時(shí)間。

while(1)
{
 R_PORT10->PODR^=1<<(BSP_IO_PORT_10_PIN_01&0xFF);  //PA01亮滅翻轉(zhuǎn)
 R_BSP_SoftwareDelay(1,BSP_DELAY_UNITS_MILLISECONDS);  //SysTick延時(shí)
}
e4b28e04-0ac0-11f0-9310-92fbcf53809c.png ?這個(gè)是1ms翻轉(zhuǎn),SysTick延時(shí)誤差還是比較小,相對(duì)1ms來(lái)說(shuō)誤差可以忽略(采樣頻率100KHz看不出來(lái)誤差)。e4d57a18-0ac0-11f0-9310-92fbcf53809c.png ?采樣頻率為100MHz,其實(shí)還是看得出來(lái)有點(diǎn)誤差。當(dāng)然,這個(gè)誤差是晶振、軟件等多種因素影響的。還有,us級(jí)別的誤差,相對(duì)ms可以忽略。e4ea7c06-0ac0-11f0-9310-92fbcf53809c.png

如果改為1us翻轉(zhuǎn),通過(guò)IO翻轉(zhuǎn)來(lái)測(cè)試,誤差就相對(duì)明顯一點(diǎn)。

4

源碼描述

有經(jīng)驗(yàn)的工程師應(yīng)該都能看懂,這里針對(duì)初學(xué)者簡(jiǎn)單說(shuō)下。

R_PORT10->PODR ^=1<<(BSP_IO_PORT_10_PIN_01 &?0xFF);
為了減少軟件帶來(lái)誤差,這里直接操作寄存器進(jìn)行IO翻轉(zhuǎn)。
R_BSP_SoftwareDelay(1, BSP_DELAY_UNITS_MILLISECONDS);
R_BSP_SoftwareDelay:阻塞延時(shí)函數(shù),是FSP軟件包自帶函數(shù)接口。 BSP_DELAY_UNITS_MILLISECONDS:宏定義,延時(shí)單位(毫秒)。系統(tǒng)定義了三個(gè)宏:
typedefenum
{
  BSP_DELAY_UNITS_SECONDS   =1000000,///< Requested delay amount is in seconds
  BSP_DELAY_UNITS_MILLISECONDS =1000,  ///< Requested delay amount is in milliseconds
  BSP_DELAY_UNITS_MICROSECONDS =1   ///< Requested delay amount is in microseconds
}bsp_delay_units_t;
R_BSP_SoftwareDelay:其實(shí)就是利用SysTick進(jìn)行的延時(shí)。e500008a-0ac0-11f0-9310-92fbcf53809c.png ?通過(guò)分析源碼,你會(huì)發(fā)現(xiàn)Cortex-M85內(nèi)核的SysTick和Cortex-M3的向下兼容,常用的接口也一樣。 最后,單片機(jī)內(nèi)核的SysTick是不是很簡(jiǎn)單,希望通過(guò)本文的描述,對(duì)你了解SysTick有所幫助。

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

    關(guān)注

    6052

    文章

    44748

    瀏覽量

    642522
  • 瑞薩
    +關(guān)注

    關(guān)注

    36

    文章

    22333

    瀏覽量

    87327
  • RA8
    RA8
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    6668
  • Systick
    +關(guān)注

    關(guān)注

    0

    文章

    63

    瀏覽量

    13316

原文標(biāo)題:瑞薩RA8系列教程 | RA8單片機(jī)SysTick使用描述

文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦

    基于RA8單片機(jī)的智能小車項(xiàng)目方案 附源代碼

    基于RA8單片機(jī),e2studio開(kāi)發(fā)環(huán)境,給大家講述一下智能小車項(xiàng)目的方案,并附上主要的源代碼。
    的頭像 發(fā)表于 03-07 14:36 ?844次閱讀
    基于<b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA8</b><b class='flag-5'>單片機(jī)</b>的智能小車項(xiàng)目方案 附源代碼

    RA8系列高性能MCU開(kāi)發(fā)上手體驗(yàn)

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是RA8系列高性能MCU開(kāi)發(fā)上手體驗(yàn)。
    的頭像 發(fā)表于 08-08 15:21 ?1598次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA8</b><b class='flag-5'>系列</b>高性能<b class='flag-5'>MCU</b>開(kāi)發(fā)上手體驗(yàn)

    RA8快速上手指南:Cortex-M85內(nèi)核RA8開(kāi)發(fā)環(huán)境搭建 并點(diǎn)亮一個(gè)LED

    因?yàn)镃ortex-M內(nèi)核,RA8系列單片機(jī)支持多種市面上常見(jiàn)的開(kāi)發(fā)環(huán)境,像Keil MDK、IAR EWARM等,而本文講述的是
    的頭像 發(fā)表于 03-17 14:35 ?468次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA8</b>快速上手指南:Cortex-M85內(nèi)核<b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA8</b>開(kāi)發(fā)環(huán)境搭建 并點(diǎn)亮一個(gè)LED

    Cortext-M85內(nèi)核RA8系列單片機(jī)的串口輸出實(shí)現(xiàn)方法

    串口是最常見(jiàn)的通信方式之一,也是單片機(jī)調(diào)試最常見(jiàn)的通信接口,也是現(xiàn)在的單片機(jī)必備的通信接口,目前(2024-05)最新、最強(qiáng)的Cortext-M85內(nèi)核的RA8系列
    的頭像 發(fā)表于 03-21 09:58 ?637次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>Cortext-M85內(nèi)核<b class='flag-5'>RA8</b><b class='flag-5'>系列</b><b class='flag-5'>單片機(jī)</b>的串口輸出實(shí)現(xiàn)方法

    面向電機(jī)控制應(yīng)用推出性能卓越的RA8 MCU

    的實(shí)時(shí)控制要求。 ? RA8T1產(chǎn)品群是RA8系列的第三款產(chǎn)品。所有RA8
    發(fā)表于 01-31 15:29 ?1256次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>面向電機(jī)控制應(yīng)用推出性能卓越的<b class='flag-5'>RA8</b> <b class='flag-5'>MCU</b>

    IAR為RA8系列MCU開(kāi)發(fā)提供支持

    嵌入式開(kāi)發(fā)軟件和服務(wù)的全球領(lǐng)導(dǎo)者IAR今日宣布,其最新發(fā)布的IAR Embedded Workbench for Arm 9.40.2版本中無(wú)縫集成了對(duì)(Renesas)RA8系列
    的頭像 發(fā)表于 11-02 17:08 ?1170次閱讀

    新品發(fā)布 | 推出面向圖形顯示應(yīng)用和語(yǔ)音/視覺(jué)多模態(tài)AI應(yīng)用的全新RA8 MCU產(chǎn)品群

    新聞快訊 全球半導(dǎo)體解決方案供應(yīng)商電子(TSE:6723)宣布推出RA8D1微控制器(MCU)產(chǎn)品群。RA8D1產(chǎn)品群作為
    的頭像 發(fā)表于 12-15 16:00 ?912次閱讀
    新品發(fā)布 | <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>推出面向圖形顯示應(yīng)用和語(yǔ)音/視覺(jué)多模態(tài)AI應(yīng)用的全新<b class='flag-5'>RA8</b> <b class='flag-5'>MCU</b>產(chǎn)品群

    電子宣布推出RA8D1微控制器(MCU)產(chǎn)品群

    2023年12月12日,電子宣布推出RA8D1微控制器(MCU)產(chǎn)品群。RA8D1產(chǎn)品群作為
    的頭像 發(fā)表于 12-15 15:58 ?1178次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子宣布推出<b class='flag-5'>RA8</b>D1微控制器(<b class='flag-5'>MCU</b>)產(chǎn)品群

    電子推出全新RA MCU家族產(chǎn)品RA8

    電子推出的全新RA MCU家族產(chǎn)品RA8,是業(yè)界首款搭載Arm Cortex-M85內(nèi)核超高性能MC
    的頭像 發(fā)表于 12-20 12:25 ?1297次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子推出全新<b class='flag-5'>RA</b> <b class='flag-5'>MCU</b>家族產(chǎn)品<b class='flag-5'>RA8</b>

    RA8系列用戶手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《RA8系列用戶手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 01-29 14:06 ?0次下載
    <b class='flag-5'>RA8</b><b class='flag-5'>系列</b>用戶手冊(cè)

    AMEYA360 | 皇華:面向電機(jī)控制應(yīng)用推出性能卓越的RA8 MCU

    AMEYA360 | 皇華:面向電機(jī)控制應(yīng)用推出性能卓越的RA8 MCU:全球半導(dǎo)體解決方案供應(yīng)商
    的頭像 發(fā)表于 02-02 16:02 ?637次閱讀

    電子RA家族推出RA8系列高算力通用MCU

    電子RA家族推出RA8系列高算力通用MCU,是業(yè)界首款基于Arm? Cortex?-M85(
    的頭像 發(fā)表于 04-02 14:14 ?1717次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子<b class='flag-5'>RA</b>家族推出<b class='flag-5'>RA8</b><b class='flag-5'>系列</b>高算力通用<b class='flag-5'>MCU</b>

    RA8硬件手冊(cè)(英)

    RA8硬件手冊(cè)
    發(fā)表于 06-20 15:24 ?3次下載

    電子全新RA8系列MCU產(chǎn)品介紹

    Arm Cortex-M85 RA8系列于2024年11月推出RA8E1和RA8E2兩款新產(chǎn)品。這兩款新產(chǎn)品已正式量產(chǎn)上市,將高算力的RA8
    的頭像 發(fā)表于 11-09 17:04 ?839次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子全新<b class='flag-5'>RA8</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>產(chǎn)品介紹

    電子RA8E1和RA8E2 MCU新品解讀

    Arm Cortex-M85 RA8系列于2024年11月推出RA8E1和RA8E2兩款新產(chǎn)品。這兩款新產(chǎn)品已正式量產(chǎn)上市,將高算力的RA8
    的頭像 發(fā)表于 12-09 10:35 ?644次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子<b class='flag-5'>RA8</b>E1和<b class='flag-5'>RA8</b>E2 <b class='flag-5'>MCU</b>新品解讀

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品