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

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

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

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

CW32定時器及其中斷介紹

武漢芯源半導體有限公司 ? 2023-02-28 16:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

以CW32L083為例,其定時器分為6種:

基本定時器:CW32L083 內(nèi)部集成 3 個基本定時器 (BTIM),每個 BTIM 完全獨立且功能完全相同,各包含一個 16bit 自動重裝 載計數(shù)器并由一個可編程預(yù)分頻器驅(qū)動。BTIM 支持定時器模式、計數(shù)器模式、觸發(fā)啟動模式和門控模式 4 種工作模式,支持溢出事件觸發(fā)中斷請求和 DMA 請求。得益于對觸發(fā)信號的精細處理設(shè)計,使得 BTIM 可以由硬件自 動執(zhí)行觸發(fā)信號的濾波操作,還能令觸發(fā)事件產(chǎn)生中斷和 DMA 請求。

低功耗定時器:CW32L083 內(nèi)部集成 1 個 16 位低功耗定時器(LPTIM),可以以很低的功耗實現(xiàn)定時或?qū)ν獠棵}沖計數(shù)的功能。通過選擇合適的時鐘源和觸發(fā)信號,可以實現(xiàn)系統(tǒng)低功耗休眠時將MCU喚醒的功能。LPTIM 內(nèi)部具有一個比較寄存器,可實現(xiàn)比較輸出和 PWM 輸出,并可以控制輸出波形的極性。此外,LPTIM 還可以與正交編碼器連接,自動 實現(xiàn)遞增計數(shù)和遞減計數(shù)。

通用定時器:CW32L083 內(nèi)部集成 4 個通用定時器(GTIM),每個 GTIM 完全獨立且功能完全相同,各包含一個16bit 自動重 裝載計數(shù)器并由一個可編程預(yù)分頻器驅(qū)動。GTIM 支持定時器模式、計數(shù)器模式、觸發(fā)啟動模式和門控模式 4 種基本工作模式,每組帶4 路獨立的捕獲 / 比較通道,可以測量輸入信號的脈沖寬度(輸入捕獲)或者產(chǎn)生輸出波形(輸出比較和 PWM)。

高級定時器:高級定時器 (ATIM) 由一個 16 位的自動重載計數(shù)器和 7 個比較單元組成,并由一個可編程的預(yù)分頻器驅(qū)動。ATIM 支持 6 個獨立的捕獲 / 比較通道,可實現(xiàn) 6 路獨立 PWM 輸出或 3 對互補 PWM 輸出或?qū)?6 路輸入進行捕獲???用于基本的定時 / 計數(shù)、測量輸入信號的脈沖寬度和周期、產(chǎn)生輸出波形(PWM、單脈沖、插入死區(qū)時間的互補 PWM 等)。

獨立看門狗定時器 (IWDT):CW32L083 內(nèi)部集成獨立看門狗定時器 (IWDT),使用專門的內(nèi)部 RC 時鐘源 RC10K,可避免運行時受到外部因素 影響。一旦啟動 IWDT,用戶需要在規(guī)定時間間隔內(nèi)對 IWDT 的計數(shù)器進行重載,否則計數(shù)器溢出會觸發(fā)復(fù)位或 產(chǎn)生中斷信號。IWDT 啟動后,可停止計數(shù)??蛇x擇在深度休眠模式下 IWDT 保持運行或暫停計數(shù)。專門設(shè)置的鍵值寄存器,可以鎖定 IWDT 的關(guān)鍵寄存器,防止寄存器被意外修改。

窗口看門狗定時器 (WWDT):CW32L083 內(nèi)部集成窗口看門狗定時器 (WWDT),用戶需要在設(shè)定的時間窗口內(nèi)進行刷新,否則將觸發(fā)系統(tǒng)復(fù)位。WWDT 通常被用來監(jiān)測有嚴格時間要求的程序執(zhí)行流程,防止由外部干擾或未知條件造成應(yīng)用程序的執(zhí)行異常, 導致發(fā)生系統(tǒng)故障。

01

CW32定時器中斷

定時器中斷是由CW32中的定時器引起的中斷,所謂中斷就是程序正常順序執(zhí)行的時候,出現(xiàn)了突發(fā)事件,CPU停止當前的程序的執(zhí)行,轉(zhuǎn)去處理突發(fā)事件,處理完畢后又返回原程序被中斷的位置繼續(xù)執(zhí)行。

02

CW32定時器中斷源

定時器主要中斷源包括如下:

基本定時器(BTIM): 計數(shù)器(ARR/TOP)溢出中斷、計數(shù)器觸發(fā)中斷。

低功耗定時器(LPTIM): 計數(shù)方向反向中斷、ARR更新完成中斷、比較寄存器更新完成中斷、計數(shù)器觸發(fā)中斷、ARR自動重載匹配中斷、比較匹配中斷。

通用定時器(GTIM): 編碼器計數(shù)方向變化中斷、CHx捕獲比較中斷、計數(shù)器下溢中斷、計數(shù)器觸發(fā)中斷、計數(shù)器ARR溢出中斷。

高級定時器(ATIM): CHxA/B捕獲比較中斷、CHxA/B捕獲數(shù)據(jù)丟失中斷、計數(shù)器上溢中斷、計數(shù)器下溢中斷、剎車中斷、CH4比較匹配中斷、事件更新中斷。

更新事件, 觸發(fā)事件。

獨立看門狗定時器(IWDT): 計數(shù)器溢出中斷。

窗口看門狗定時器(WWDT):計數(shù)器溢出中斷。

各中斷源的含義詳細描述參見對應(yīng)產(chǎn)品的用戶手冊內(nèi)容。

03

實際操作

以CW32L083為例,控制基本定時器BTIM1以固定的時間間隔產(chǎn)生中斷,并在ARR溢出中斷中控制口線電平翻轉(zhuǎn)。

1. RCC時鐘初始化

void RCC_Configuration(void)
{
RCC_HSI_Enable(RCC_HSIOSC_DIV6);
//系統(tǒng)時鐘設(shè)置為HSI時鐘6分頻,8MHz, PCLK、HCLK不分頻,PCLK=HCLK=SysClk=8MHz
__RCC_BTIM_CLK_ENABLE();
__RCC_GPIOB_CLK_ENABLE();
}

2.初始化GPIO口

void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.IT = GPIO_IT_NONE;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pins = GPIO_PIN_8;
GPIO_Init(CW_GPIOB, &GPIO_InitStruct);
}

3.配置嵌套矢量中斷控制器

void NVIC_Configuration(void)
{
    __disable_irq();
    NVIC_EnableIRQ(BTIM1_IRQn);
    __enable_irq();
} 

4.主函數(shù)

int32_t main(void)
{
BTIM_TimeBaseInitTypeDef BTIM_TimeBaseInitStruct = {0};

/* System Clocks Configuration */
    RCC_Configuration();

    /* NVIC Configuration */
    NVIC_Configuration();

    /* GPIO Configuration */
    GPIO_Configuration();

BTIM_TimeBaseInitStruct.BTIM_Mode = BTIM_Mode_TIMER;
/* 工作模式,00:定時器模式01:計數(shù)器模式10:觸發(fā)計數(shù)模式11:門控計數(shù)模式 */
BTIM_TimeBaseInitStruct.BTIM_Period = 49999;
/* 計數(shù)重載周期,取值范圍0x0000 到 0xFFFF. */
    BTIM_TimeBaseInitStruct.BTIM_Prescaler = 7;   // 8分頻
/*8分頻, 預(yù)分配系數(shù),取值范圍2的n次冪,n=0,1,2…15 */
BTIM_TimeBaseInit(CW_BTIM1, &BTIM_TimeBaseInitStruct);
//BTIM基本定時器初始化
    BTIM_ITConfig(CW_BTIM1, BTIM_IT_OV, ENABLE);  // 使能BTIMx的溢出中斷
    BTIM_Cmd(CW_BTIM1, ENABLE);
    /*BTIM1以1MHz時鐘進行計數(shù),設(shè)置ARR寄存器為49999,則BTIM1將每50ms溢出一次,并觸發(fā)中斷服務(wù)程序。*/
    while (1)
    {
        /* 中斷服務(wù)程序中 PB8輸出翻轉(zhuǎn) */
    }
}

5.中斷函數(shù):PB08輸出翻轉(zhuǎn)

void BTIM1_IRQHandler(void)
{
    /* USER CODE BEGIN */
if (BTIM_GetITStatus(CW_BTIM1, BTIM_IT_OV))
// 檢查BTIM的狀態(tài)寄存器的各狀態(tài)位是否置位
    {
        BTIM_ClearITPendingBit(CW_BTIM1, BTIM_IT_OV); 
// 清除BTIM的狀態(tài)寄存器的各狀態(tài)位
        PB08_TOG();
//PB08口信號翻轉(zhuǎn)
    }

    /* USER CODE END */
}

6.實驗驗證

示波器檢測PB08口的信號輸出,示波器波形圖呈周期性翻轉(zhuǎn)。

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

    關(guān)注

    48

    文章

    7954

    瀏覽量

    155175
  • 單片機
    +關(guān)注

    關(guān)注

    6067

    文章

    44992

    瀏覽量

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

    關(guān)注

    146

    文章

    17984

    瀏覽量

    367204
  • 國產(chǎn)替代
    +關(guān)注

    關(guān)注

    0

    文章

    238

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

    stm32H743定時器溢出的原因?怎么解決?

    我利用定時器更新中斷實現(xiàn)軟件計時,定時時間是固定的按照{(diào)10ms, 20ms,650ms, 50ms,50ms}周期性進行的。由于下一次的計時時間是需要在定時器
    發(fā)表于 06-23 08:26

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

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

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

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

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

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

    MCU定時器/計數(shù)

    RISC-V核低功耗MCU通過靈活的定時器架構(gòu)、低功耗模式適配及硬件級中斷優(yōu)化,在工業(yè)控制、智能家居等場景中實現(xiàn)高精度計時與能耗控制的協(xié)同設(shè)計,滿足復(fù)雜任務(wù)調(diào)度與實時響應(yīng)的雙重需求?。 一、?硬件
    的頭像 發(fā)表于 04-27 13:54 ?305次閱讀

    STM32G474HRTIM使用HRTIM配置了主定時器中斷,為啥調(diào)試的跳轉(zhuǎn)到硬件中斷,進不去定時器中斷,為什么?

    各位大佬,我使用HRTIM配置了主定時器中斷,為啥調(diào)試的跳轉(zhuǎn)到硬件中斷,進不去定時器中斷 下面是我的初始化代碼
    發(fā)表于 03-13 08:17

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

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

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

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

    詳解CKS32F107xx系列的定時器同步功能

    我們將圍繞定時器同步功能概述展開,并以其中一種功能為例——將定時器2給定時器3當預(yù)分頻,最終級聯(lián)同步PWM輸出。
    的頭像 發(fā)表于 11-26 17:51 ?1061次閱讀
    詳解CKS32F107xx系列的<b class='flag-5'>定時器</b>同步功能

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

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

    看門狗定時器的工作原理

    看門狗定時器是一種獨立的計時硬件模塊,其核心功能是倒計時。如果系統(tǒng)軟件在計時超時前沒有對其進行復(fù)位操作(即“喂狗”),看門狗將觸發(fā)一個預(yù)定義的動作,通常是系統(tǒng)復(fù)位或中斷。
    的頭像 發(fā)表于 10-21 14:18 ?1296次閱讀
    看門狗<b class='flag-5'>定時器</b>的工作原理

    定時器自動控制開關(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 ?4111次閱讀

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

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

    如何使用555定時器制作電壓倍增電路

    電壓倍增電路是電壓倍增電路家族中的一種電路。在本文中,我們將學習如何使用555定時器及其他重要組件及其簡要說明制作電壓倍增
    的頭像 發(fā)表于 08-12 18:21 ?1664次閱讀
    如何使用555<b class='flag-5'>定時器</b>制作電壓倍增<b class='flag-5'>器</b>電路