在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

CW32定時器及其中斷介紹

武漢芯源半導(dǎo)體有限公司 ? 2023-02-28 16:32 ? 次閱讀

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

基本定時器:CW32L083 內(nèi)部集成 3 個基本定時器 (BTIM),每個 BTIM 完全獨立且功能完全相同,各包含一個 16bit 自動重裝 載計數(shù)器并由一個可編程預(yù)分頻器驅(qū)動。BTIM 支持定時器模式、計數(shù)器模式、觸發(fā)啟動模式和門控模式 4 種工作模式,支持溢出事件觸發(fā)中斷請求和 DMA 請求。得益于對觸發(fā)信號的精細(xì)處理設(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 對互補(bǔ) PWM 輸出或?qū)?6 路輸入進(jìn)行捕獲。可 用于基本的定時 / 計數(shù)、測量輸入信號的脈沖寬度和周期、產(chǎn)生輸出波形(PWM、單脈沖、插入死區(qū)時間的互補(bǔ) PWM 等)。

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

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

01

CW32定時器中斷

定時器中斷是由CW32中的定時器引起的中斷,所謂中斷就是程序正常順序執(zhí)行的時候,出現(xiàn)了突發(fā)事件,CPU停止當(dāng)前的程序的執(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ù)器溢出中斷。

各中斷源的含義詳細(xì)描述參見對應(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時鐘進(jìn)行計數(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)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7574

    瀏覽量

    151713
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6040

    文章

    44587

    瀏覽量

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

    關(guān)注

    146

    文章

    17194

    瀏覽量

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

    關(guān)注

    0

    文章

    167

    瀏覽量

    1798
收藏 人收藏

    評論

    相關(guān)推薦

    定時器的工作方式介紹

    或?qū)崿F(xiàn)周期性事件的硬件模塊。它可以用于實現(xiàn)各種定時任務(wù),如定時中斷、PWM(脈沖寬度調(diào)制)輸出、頻率測量等。定時器通常由一個計數(shù)、一個時鐘源和一個控制寄存
    的頭像 發(fā)表于 07-12 10:29 ?1057次閱讀

    定時器相關(guān)的寄存有哪些類型

    在微控制編程中,定時器是一種非常常見的功能模塊,用于實現(xiàn)各種定時和計數(shù)功能。定時器的工作原理是通過內(nèi)部的計數(shù)來跟蹤時間的流逝,當(dāng)計數(shù)
    的頭像 發(fā)表于 07-12 10:25 ?1024次閱讀

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

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

    CW32數(shù)字電壓電流表軟件教程-實驗四:數(shù)碼管動態(tài)顯示

    顯示不同的值需要用到CW32定時器功能,在定時器中斷服務(wù)程序里面執(zhí)行顯示刷新的動作。有關(guān)CW32
    的頭像 發(fā)表于 05-31 15:23 ?562次閱讀
    <b class='flag-5'>CW32</b>數(shù)字電壓電流表軟件教程-實驗四:數(shù)碼管動態(tài)顯示

    CW32使用DMA單通道、定時器觸發(fā)ADC實現(xiàn)了多路AD采集

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

    使用定時器的編碼接口模式,打開定時器的溢出中斷,當(dāng)定時器上溢出和下溢出是,是否都會產(chǎn)生溢出中斷

    使用定時器的編碼接口模式,打開定時器的溢出中斷,當(dāng)定時器上溢出和下溢出是,是否都會產(chǎn)生溢出中斷
    發(fā)表于 05-24 07:41

    用STM32F103打開了定時器2開定時器中斷,關(guān)閉就報錯 ,定時器如何關(guān)閉呢?

    最近用STM32F103打開了定時器2 開定時器中斷,開啟PA11的中斷,在PA11的中斷里把定時器
    發(fā)表于 05-14 06:52

    如何實現(xiàn)一個軟件定時器

    在Linux,uC/OS,F(xiàn)reeRTOS等操作系統(tǒng)中,都帶有軟件定時器,原理大同小異。典型的實現(xiàn)方法是:通過一個硬件定時器產(chǎn)生固定的時鐘節(jié)拍,每次硬件定時器中斷到,就對一個全局的時間
    的頭像 發(fā)表于 04-29 11:00 ?703次閱讀

    CW32量產(chǎn)燒錄工具

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

    CW32快速開發(fā)入門

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

    s7200定時器的五種故障介紹

    定時器或CPU故障:如果定時器本身或PLC的CPU出現(xiàn)故障,也可能導(dǎo)致定時器無法復(fù)位。此時,需要檢查定時器和CPU的工作狀態(tài),確保其正常運行。
    的頭像 發(fā)表于 04-03 17:08 ?2592次閱讀

    ?PLC定時器介紹

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

    使用555定時器的可調(diào)雙定時器電路

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

    單片機(jī)外部中斷定時器中斷的區(qū)別和用法

    單片機(jī)外部中斷定時器中斷在觸發(fā)來源、應(yīng)用場景以及功能特點上存在明顯差異** **。
    的頭像 發(fā)表于 01-28 17:35 ?3235次閱讀

    555定時器的基本功能 555定時器的工作原理及其應(yīng)用

    555定時器是一種非常常見和常用的集成電路,它具有廣泛的應(yīng)用領(lǐng)域,例如計時、頻率分頻、脈沖寬度調(diào)制等。本文將詳細(xì)介紹555定時器的基本功能、工作原理以及應(yīng)用。 一、555定時器的基本功
    的頭像 發(fā)表于 01-18 11:12 ?1.6w次閱讀
    主站蜘蛛池模板: 色五月视频| 欧洲色| 狠狠色噜噜狠狠狠狠五月婷 | 欧美日韩中文字幕在线| 欧美色图亚洲| 国模网站| 午夜视频在线观看完整高清在线| 天天碰天天| 精品福利视频网站| 西西午夜影院| 日本视频一区在线观看免费| 最新色网站| 色综合综合色综合色综合| 青草午夜精品视频在线观看| 久久综合色视频| 成人性视频网站| 天天干狠狠操| www.天天干.com| 色综合视频一区二区三区| 曰本黄色一级| 日韩欧美中文字幕在线视频| 久久精品国产四虎| 亚洲第一黄色网址| 大黄一级片| 加勒比一区二区三区| 四虎永久在线精品国产免费| 六月丁香色婷婷| 夜夜爽www| www深夜视频在线观看高清| 亚洲免费观看在线视频| 亚洲成网777777国产精品| 欧美区在线播放| 成人久久网站| 狠狠干夜夜爽| 美女视频一区二区三区在线| 午夜黄色福利| 狠狠干狠狠鲁| 欧美女同在线观看| 亚洲视频一区二区三区| 四虎国产在线| 艹逼视频免费|