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

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

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

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

CW32定時器操作講解——輸入捕獲

jf_pJlTbmA9 ? 來源:武漢芯源半導(dǎo)體 ? 作者:武漢芯源半導(dǎo)體 ? 2023-09-27 16:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

CW32系列MCU的GTIM、ATIM的每個定時器都帶有至少4路獨立的捕獲 / 比較通道,輸入捕獲功能可以測量輸入信號的脈沖寬度或者頻率。當(dāng)捕獲比較通道 CHy 上信號發(fā)生跳變(上升沿或下降沿)時,硬件自動將當(dāng)前計數(shù)寄存器 GTIMx_CNT 的值存放到對應(yīng)通道的比較捕獲寄存器 GTIMx_CCRy 中,完成一次捕獲。通過連續(xù)幾次捕獲即可完成信號脈沖寬度或者頻率的測量。

功能框圖如下圖所示:

wKgZomUDzUaAV_qQAABYvDx4qpM254.png

各個通道上觸發(fā)捕獲的條件由比較捕獲控制寄存器 GTIMx_CMMR 決定。

wKgaomUDzUeAAbnrAAClCxzLx7U763.png

當(dāng)發(fā)生一次捕獲時,通道 CHy 比較捕獲中斷標(biāo)志 GTIMx_ISR.CCy 被硬件置位,如果允許中斷 ( 設(shè)置中斷使能寄 存器 GTIMx_IER.CCy 為 1),CPU 將響應(yīng)中斷服務(wù)程序。退出中斷服務(wù)程序之前,應(yīng)設(shè)置中斷標(biāo)志清除寄存器 GTIMx_ICR.CCy 為 0 以清除該標(biāo)志。

輸入捕獲來源

GTIM 的輸入捕獲來源可以是外部 GTIMx_CHy 引腳,也可以是片內(nèi)其它外設(shè),通過通用定時器輸入捕獲來源配置寄存器 SYSCTRL_GTIMxCAP 進行配置。當(dāng) SYSCTRL_GTIMxCAP.CHy 為 0x00 時,輸入捕獲信號的外部輸入端口由 GPIO 復(fù)用功能寄存器 (GPIOx_AFRH 和 GPIOx_AFRL) 進行配置。當(dāng) SYSCTRL_GTIMxCAP.CHy 為 0x01 ~ 0x07 時,輸入捕獲信號來自片內(nèi)其它外設(shè),如下表所示:

wKgZomUDzUmAXMGQAAG5XAd63dQ385.png

這種配置下,可以在芯片內(nèi)部實現(xiàn)外部輸入的互聯(lián),例如將 UART 的 RXD 信號作為輸入捕獲來源,可以實現(xiàn)對 UART 波特率的自動檢測。

實例演示:利用GTIM的輸入捕獲功能,測量PWM信號的周期和脈寬

1.初始化系統(tǒng)時鐘

void RCC_Configuration(void)

{

__RCC_GTIM1_CLK_ENABLE();

__RCC_GPIOA_CLK_ENABLE();

RCC_HSI_Enable(RCC_HSIOSC_DIV6);

// 系統(tǒng)時鐘設(shè)置為HSI,6分頻,8MHz, PCLK、HCLK不分頻, PCLK=HCLK=SysClk=8MHz

}

2.初始化GPIO

void GPIO_Configuration(void)

{

GPIO_InitTypeDef GPIO_InitStruct = {0};

GPIO_InitStruct.IT = GPIO_IT_NONE;

GPIO_InitStruct.Mode = GPIO_MODE_INPUT;

GPIO_InitStruct.Pins = GPIO_PIN_6 | GPIO_PIN_7;

GPIO_Init(CW_GPIOA, GPIO_InitStruct);

PA06_AFx_GTIM1CH1();//設(shè)置PA06復(fù)用為GTIM1_CH1, 上升沿觸發(fā)捕獲

PA07_AFx_GTIM1CH2();//設(shè)置PA07復(fù)用為GTIM1_CH2,下降沿觸發(fā)捕獲。

}

3.配置中斷服務(wù)程序

void NVIC_Configuration(void)

{

__disable_irq();

NVIC_EnableIRQ(GTIM1_IRQn);

__enable_irq();

}

4.GTIM1中斷服務(wù)程序:通道1的輸入捕獲中斷獲取計數(shù)值VALUE1,通道2的輸入捕獲中斷獲取計數(shù)值VALUE2,通道1的第2次輸入捕獲中斷獲取計數(shù)值VALUE3。則信號脈寬=VALUE2-VALUE1,信號周期=VALUE3-VALUE1。注意如果待測量信號的脈寬和周期較長,在計算時需要考慮定時器的溢出問題,詳見定時器溢出中斷處理內(nèi)容。

void GTIM1_IRQHandler(void)

{

GTIM1_IRQHandlerCallBack();

}

void GTIM1_IRQHandlerCallBack(void)

{

static uint8_t stage = 0;

static uint32_t cnt = 0;

if (GTIM_GetITStatus(CW_GTIM1, GTIM_IT_OV))

{

GTIM_ClearITPendingBit(CW_GTIM1, GTIM_IT_OV);

if (stage == 1)

{

cnt++;

}

}

if (GTIM_GetITStatus(CW_GTIM1, GTIM_IT_CC1))

{

if (stage == 0)

{

PWMPeriod = GTIM_GetCapture1(CW_GTIM1);

stage = 1;

}

else if (stage == 1)

{

PWMPeriod = GTIM_GetCapture1(CW_GTIM1) + cnt * 65536 - PWMPeriod;

stage = 0;

cnt = 0;

}

GTIM_ClearITPendingBit(CW_GTIM1, GTIM_IT_CC1);

}

if (GTIM_GetITStatus(CW_GTIM1, GTIM_IT_CC2))

{

if (stage == 1)

{

PWMWidth = GTIM_GetCapture2(CW_GTIM1) + cnt * 65536 - PWMPeriod;

}

GTIM_ClearITPendingBit(CW_GTIM1, GTIM_IT_CC2);

}

}

5.主程序:使用GTIM1的CH1和CH2兩個通道對PWM輸入信號進行測量,在捕獲中斷服務(wù)程序中完成信號的周期和脈寬計算。

static uint32_t PWMPeriod = 0;

static uint32_t PWMWidth = 0;

int32_t main(void)

{

RCC_Configuration();//System Clocks Configuration

GPIO_Configuration();//GPIO Configuration

NVIC_Configuration();//NVIC Configuration

GTIM_InitTypeDef GTIM_InitStruct = {0};

GTIM_ICInitTypeDef GTIM_ICInitStruct = {0};

GTIM_InitStruct.Mode = GTIM_MODE_TIME; /*!< GTIM的模式選擇。*/

GTIM_InitStruct.OneShotMode = GTIM_COUNT_CONTINUE;

/*!< GTIM的單次/連續(xù)計數(shù)模式選擇。*/

GTIM_InitStruct.Prescaler = GTIM_PRESCALER_DIV1; /*!< GTIM的預(yù)分頻系數(shù)。*/

GTIM_InitStruct.ReloadValue = 0xFFFF; /*!< GTIM的重載值。*/

GTIM_InitStruct.ToggleOutState = DISABLE;

GTIM_TimeBaseInit(CW_GTIM1, GTIM_InitStruct); //GTIM的基礎(chǔ)參數(shù)初始化

GTIM_ICInitStruct.CHx = GTIM_CHANNEL1;// GTIM 輸入捕獲的配置參數(shù)

GTIM_ICInitStruct.ICFilter = GTIM_CHx_FILTER_NONE;

GTIM_ICInitStruct.ICInvert = GTIM_CHx_INVERT_ON;

GTIM_ICInitStruct.ICPolarity = GTIM_ICPolarity_Rising;

GTIM_ICInit(CW_GTIM1, GTIM_ICInitStruct);//輸入捕獲功能初始化

GTIM_ICInitStruct.CHx = GTIM_CHANNEL2;

GTIM_ICInitStruct.ICPolarity = GTIM_ICPolarity_Falling;

GTIM_ICInit(CW_GTIM1, GTIM_ICInitStruct);

GTIM_ITConfig(CW_GTIM1, GTIM_IT_CC1 | GTIM_IT_CC2 | GTIM_IT_OV, ENABLE);

GTIM_Cmd(CW_GTIM1, ENABLE);

while (1)

{

}

}

6.演示說明:

將同一個PWM輸入信號引入到PA06和PA07上,運行程序,使用GTIM1的CH1和CH2兩個通道對PWM輸入信號的脈寬和周期進行測量。

來源:武漢芯源半導(dǎo)體

免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(liá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)注

    31

    文章

    5617

    瀏覽量

    130378
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3370

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    CW32系統(tǒng)滴答SysTick定時器詳解

    存放10mS校準(zhǔn)值,該值和MCU相關(guān)。 3.操控SysTick定時器 在MDK開發(fā)環(huán)境中,我們不必要非得去操作每一個寄存,可以通過調(diào)用CW函數(shù)庫中的函數(shù)來進行相關(guān)的
    發(fā)表于 01-21 07:20

    CW32定時器及其中斷介紹

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

    CW32仿真是什么?

    CW32仿真是什么
    發(fā)表于 01-05 08:04

    請問CW32系列微控制是否支持操作系統(tǒng),如RTOS?

    CW32系列微控制是否支持操作系統(tǒng),如RTOS?
    發(fā)表于 12-16 08:14

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

    (PLL):這是一種可以將輸入時鐘源進行倍頻輸出的時鐘源,可以提供更高的時鐘頻率。 定時器方面,CW32系列微控制通常提供以下幾種選擇: 基本
    發(fā)表于 12-16 06:26

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

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

    CW32L083的基本定時器

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

    CW32通用定時器—輸出比較

    的基本用法,不過細心的小伙伴肯定想過:為什么CW32定時器叫ATIM、GTIM和BTIM呢?TIM就是timer,也就是定時器,A是advanced的縮寫,ATIM就是高級定時器,G
    發(fā)表于 12-11 06:45

    CW32單片機在智能馬桶的應(yīng)用

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

    CW32A030微控制定時器

    16bit 自動重裝載計數(shù) 并由一個可編程預(yù)分頻驅(qū)動。GTIM 支持定時器模式、計數(shù)模式、觸發(fā)啟動模式和門控模式4 種基本 工作模式,每組帶4 路獨立的
    發(fā)表于 12-04 06:47

    CW32L010+定時器介紹

    。PWM信號廣泛應(yīng)用于電機控制、LED調(diào)光等領(lǐng)域。 頻率測量:定時器還可以用于頻率測量,將未知頻率的信號作為輸入,通過測量計數(shù)的計數(shù)次數(shù)來計算輸入信號的頻率。
    發(fā)表于 12-01 07:53

    CW32L0開發(fā)板學(xué)習(xí)記錄四,高級定時器ATIM學(xué)習(xí)

    通道,可以測量輸入信號的脈沖寬度(輸入捕獲)或者產(chǎn)生輸出波形(輸出比較和 PWM)。 低功耗定時器(LPTIM): 內(nèi)部集成1個 16 位低功耗定時
    發(fā)表于 12-01 07:35

    CW32定時器及中斷介紹

    可以由硬件自 動執(zhí)行觸發(fā)信號的濾波操作,還能令觸發(fā)事件產(chǎn)生中斷和 DMA 請求。 低功耗定時器CW32L083 內(nèi)部集成 1 個 16 位低功耗定時器(LPTIM),可以以很低的
    發(fā)表于 12-01 07:08

    deepseek來分析CW32單片機的特點

    。 2. 豐富的外設(shè)資源 通用輸入輸出(GPIO):支持多種模式(輸入、輸出、復(fù)用功能等),靈活配置。 定時器(TIM):支持基本定時、PWM輸出、
    發(fā)表于 11-26 06:33

    定時器輸入捕獲模式

    AT32F4xx定時器輸入捕獲模式 支持型號: AT32F 系列 主要使用外設(shè): TIMER、 USART 獲取示例 1 快速使用方法 1.1 硬件資源 AT-START-F403A V1.0
    發(fā)表于 09-22 09:58