国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

CW32定時器及其中斷介紹

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

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

01

CW32定時器中斷

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

02

CW32定時器中斷源

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

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

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

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

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

更新事件, 觸發事件。

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

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

各中斷源的含義詳細描述參見對應產品的用戶手冊內容。

03

實際操作

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

1. RCC時鐘初始化

void RCC_Configuration(void)
{
RCC_HSI_Enable(RCC_HSIOSC_DIV6);
//系統時鐘設置為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.主函數

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:計數器模式10:觸發計數模式11:門控計數模式 */
BTIM_TimeBaseInitStruct.BTIM_Period = 49999;
/* 計數重載周期,取值范圍0x0000 到 0xFFFF. */
    BTIM_TimeBaseInitStruct.BTIM_Prescaler = 7;   // 8分頻
/*8分頻, 預分配系數,取值范圍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時鐘進行計數,設置ARR寄存器為49999,則BTIM1將每50ms溢出一次,并觸發中斷服務程序。*/
    while (1)
    {
        /* 中斷服務程序中 PB8輸出翻轉 */
    }
}

5.中斷函數:PB08輸出翻轉

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

    /* USER CODE END */
}

6.實驗驗證

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

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

    關注

    48

    文章

    8381

    瀏覽量

    164607
  • 單片機
    +關注

    關注

    6076

    文章

    45495

    瀏覽量

    670439
  • mcu
    mcu
    +關注

    關注

    147

    文章

    18925

    瀏覽量

    398281
  • 國產替代
    +關注

    關注

    0

    文章

    302

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    請問CW32中的CW是啥意思?

    CW32中的CW是啥意思?
    發表于 02-02 07:10

    CW32系統滴答SysTick定時器詳解

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

    CW32定時器及其中斷介紹

    可以由硬件自 動執行觸發信號的濾波操作,還能令觸發事件產生中斷和 DMA 請求。 低功耗定時器CW32L083 內部集成 1 個 16 位低功耗定時器(LPTIM),可以以很低的
    發表于 01-14 06:42

    CW32仿真是什么?

    CW32仿真是什么
    發表于 01-05 08:04

    CW32系列微控制的時鐘源和定時器選項介紹

    CW32系列微控制的時鐘源和定時器選項會因具體型號而異,但一般來說,該系列微控制會提供多種時鐘源和定時器選項以滿足不同應用的需求。 時
    發表于 12-16 06:26

    請問CW32系列微控制提供了哪些時鐘源和定時器

    CW32系列微控制提供了哪些時鐘源和定時器
    發表于 12-16 06:09

    CW32L083的基本定時器

    CW32L083 內部集成 3 個基本定時器 (BTIM),每個 BTIM 完全獨立且功能完全相同,各包含一個 16bit 自動重裝 載計數并由一個可編程預分頻驅動。BTIM 支持
    發表于 12-15 06:23

    CW32通用定時器—輸出比較

    。圖中的代碼直接列出了上述文字表達的公式,其中的50就是頻率。 隨后設置好中斷,完成必要的初始化,定時器的基本功能就可以使用了,中斷服務函數可以在函數列表中找到。 好的,你已經掌握了所
    發表于 12-11 06:45

    CW32 電容式觸摸按鍵設計指南

    半導體的 CW32 系列小規模 MCU 的 IO、比較定時器、高速高精度內置 RC 時鐘源以及高算力 等功能,通過檢測電路端子電容的微小變化和波動,實現電容式觸摸按鍵功能。其外圍電路簡單,占用資源
    發表于 12-09 06:53

    CW32單片機在智能馬桶的應用

    低功耗定時器(LPTIM) ● 4×56、6×54 或 8×52 LCD 段碼液晶驅動 ● TRNG 真隨機數發生● AES 高級加密標準模塊 CW32L083系列產品適用于對FL
    發表于 12-04 08:01

    CW32L010+定時器介紹

    這一篇介紹一下定時器的內容,從了解CW定時器到功能實現。 一、定時器類型 CW32L010系列M
    發表于 12-01 07:53

    CW32L0開發板學習記錄四,高級定時器ATIM學習

    ATIM_ICR.UIF為0清除該中斷標志。 四:軟件編寫: 4.1使用CW32單片機的定時器時候,注意使能高級定時器中斷 void
    發表于 12-01 07:35

    CW32定時器中斷介紹

    ,否則將觸發系統復位。WWDT 通常被用來監測有嚴格時間要求的程序執行流程,防止由外部干擾或未知條件造成應用程序的執行異常, 導致發生系統故障。 01 CW32定時器中斷 定時器
    發表于 12-01 07:08

    CW32 MCU用什么IDE開發?

    推薦使用IAR Embedded Workbench for ARM、Keil μVision for ARM等IDE開發CW32 MCU應用,其中新版本IAR EWARM直接支持CW32 MCU,Keil MDK-ARM則需要
    發表于 11-12 07:52

    CW32 MCU有哪些系列?

    目前CW32 MCU有通用高性能MCU、安全低功耗MCU、無線射頻MCU等3個系列。其中射頻MCU集成了無線收發,主要包括CW32R031(2.4GHz BLE-Lite)系列和
    發表于 11-12 07:34