日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]在輸入捕獲模式下,當檢測到ICx信號上升/下降邊沿時,計數(shù)器的當前值被存儲在捕獲比較寄存器TIMx_CCRx中。當捕獲事件發(fā)生時,相應的CCxIF 標志(TIMx_SR 寄存器) 被置1。如果中斷或者DMA功能被使能,就會產(chǎn)生中斷或者

在輸入捕獲模式下,當檢測到ICx信號上升/下降邊沿時,計數(shù)器的當前值被存儲在捕獲比較寄存器TIMx_CCRx中。

當捕獲事件發(fā)生時,相應的CCxIF 標志(TIMx_SR 寄存器) 被置1。如果中斷或者DMA功能被使能,就會產(chǎn)生中斷或者DMA請求。如果捕獲發(fā)生時,CCxIF標志已經(jīng)被置位,這時過采樣標志CCxOF就會被置位。向CCxIF寫0或者讀去TIM_CCRx中的數(shù)據(jù),將清除捕獲標志。CCxOF位只能通過手動寫入0進行清除。

假如我設置為上升沿捕獲,那么當一個上升沿到來的時候,定時器當前的計數(shù)值(TIMx_CNT)就會寫入TIMx_CCRx中。我們讀取這個數(shù)據(jù)。等到下一個上升沿到了時,就會有另一個計數(shù)器值TIMx_CNT記錄。根據(jù)這兩個數(shù)據(jù)值差,我們能算出來輸入數(shù)據(jù)的周期。當然,我們還有處理定時器溢出這個問題,定時器溢出了就不準了。

如果要測占空比,就需要同時捕獲上升沿和下降沿。相鄰兩個上升沿之間的計數(shù)是輸入的周期,相鄰兩次捕獲(一個上升沿一個下降沿)之間的時間是占或者空的時間。根據(jù)這個可以計算占空比或者PPM之類的東西。

【實驗內(nèi)容】

本次實驗,使用TIM4產(chǎn)生一個1K的頻率輸出,用TIM1進行捕獲。并測出頻率計算

TIM1 的時基單元配置:關(guān)于TIM1的時基設置問題前文已經(jīng)討論過了。這里只有一點需要明確的,就是為了盡量減少更新事件,將TIM_Period設置到最大即0xFFFF。定時器時鐘設置成2M,這樣定時器的更新頻率就是30Hz,不會造成兩次捕獲之間產(chǎn)生多次更新。

TIM1的完整配置代碼如下:

void TIM1_ICConfig(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);
// //時基初始化
TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1; //死區(qū)控制用。
TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up; //計數(shù)器方向
TIM_TimeBaseInitStructure.TIM_Prescaler = 84-1; //Timer clock = sysclock /(TIM_Prescaler+1) = 2M
TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;
TIM_TimeBaseInitStructure.TIM_Period = 0xFFFF; //Period = (TIM counter clock / TIM output clock) - 1 = 40Hz
TIM_TimeBaseInit(TIM1,&TIM_TimeBaseInitStructure);

TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;
TIM_ICInitStructure.TIM_ICFilter = 0;
TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;

TIM_ICInit(TIM1,&TIM_ICInitStructure);
TIM_Cmd(TIM1,ENABLE);
}

TIM4的配置就是基本的輸出配置,沒什么可說的。代碼如下:

void TIM4_OCConfig(void)
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);
TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInitStructure.TIM_Prescaler = 0;
TIM_TimeBaseInitStructure.TIM_RepetitionCounter =0;
TIM_TimeBaseInitStructure.TIM_Period = 42000-1; //周期:42M/(42000)= 1K

TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStructure);

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = 10000;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;

TIM_OC1Init(TIM4,&TIM_OCInitStructure);
TIM_Cmd(TIM4,ENABLE);
}

這個輸出頻率,在示波器上可以看到的:

之后就是在主函數(shù)里邊進行測量了:

CaptureNumber = 0;

while(1)
{
if(TIM_GetFlagStatus(TIM1,TIM_FLAG_CC1)==SET)
{
TIM_ClearFlag(TIM1,TIM_FLAG_CC1);
if(CaptureNumber == 0)
{
counter = TIM_GetCapture1(TIM1); //第一次捕獲
CaptureNumber = 1;

}
else if(CaptureNumber == 1) //處理第二次捕獲
{
if(TIM_GetFlagStatus(TIM1,TIM_FLAG_Update) != SET)//兩次捕獲間沒有發(fā)生溢出的處理
{
Time = TIM_GetCapture1(TIM1);
Time = Time - counter;
}
else
{
TIM_ClearFlag(TIM1,TIM_FLAG_Update); //產(chǎn)生了更新事件
Time = 0xFFFF - counter + TIM_GetCapture1(TIM1)+1; //如果有更新事件產(chǎn)生時候的計算方式
}
CaptureNumber = 0;
if(Time!=0)
{
freq= 2000000/Time; //計算頻率
}
freq = freq; //避免變量freq被編譯器優(yōu)化掉
}
}
}


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

基于ARM? Cortex?-M4的STM32F4 MCU系列采用了意法半導體的NVM工藝和ART Accelerator?,在高達180 MHz的工作頻率下通過閃存執(zhí)行時其處理性能達到225 DMIPS/608 Cor...

關(guān)鍵字: stm32f4 ARM

stm32f4和f1都有哪些區(qū)別?除了需要的頭文件不一樣,管腳配置什么的有區(qū)別么?

關(guān)鍵字: stm32f4 f1 比較

STM32F407VET6引腳圖及中文資料

關(guān)鍵字: stm32f4 引腳圖

近日,愛立信、意大利電信(TIM)和都靈市政府攜手展示了一系列5G創(chuàng)新成果,有望重塑意大利北部城市的生活方式。 此項活動于10月26至27日在都靈瑪?shù)卢攲m舉行,展示了5G無人駕駛汽車、無

關(guān)鍵字: 5g天線 tim 愛立信

巴西電信運營商TIM ParTIcipacoes SA(下稱TIM)表示,將使用華為提供的設備,在巴西南部城市弗洛里亞諾波利斯(Florianopolis)進行5G無線技術(shù)測試。

關(guān)鍵字: 5G tim 華為

芬蘭,埃斯波——諾基亞攜手意大利電信(TIM),利用諾基亞第三代光子業(yè)務引擎(諾基亞PSE-3),在長350多公里的羅馬-佛羅倫薩段骨干網(wǎng)上,實現(xiàn)了高達550Gb/s的數(shù)據(jù)傳輸速率,創(chuàng)下歐洲最高

關(guān)鍵字: tim 數(shù)據(jù)傳輸 諾基亞

意大利最大的通信公司意大利電信(TIM)計劃在年底前將5G服務擴展到6個意大利城市,以及數(shù)十個旅游景點和商業(yè)中心。 作為之前壟斷的公司,意大利電信上周五公布了其5G移動服務計劃。它還與競

關(guān)鍵字: 5G tim

7月23日消息,意大利電信(TIM)選用了愛立信的商用硬件、軟件及解決方案,在意大利開啟5G網(wǎng)絡,其中包括無線接入網(wǎng)?(RAN)?與核心網(wǎng),將用于新技術(shù)的初步部署。 TIM?已經(jīng)在羅馬、

關(guān)鍵字: 4g 5G tim 愛立信

西班牙電信(Telefonica)Vivo與意大利電信巴西公司(TIM Brasil)就共享2G和4G基礎設施開啟談判,隨著雙方都著眼于削減運營成本。 ? 在一份聲明中,意

關(guān)鍵字: 4g telefonica tim

意大利電信(TIM)選用了愛立信的商用硬件、軟件及解決方案,在意大利開啟5G網(wǎng)絡,其中包括無線接入網(wǎng) (RAN) 與核心網(wǎng),將用于新技術(shù)的初步部署。 TIM 已經(jīng)在羅馬、都靈和那不勒斯等

關(guān)鍵字: 5G tim 愛立信
關(guān)閉