娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年01月28日(星期二)

2020年01月28日 | stm32影子寄存器、預(yù)裝載寄存器

發(fā)布者:翠綠山水 來(lái)源: eefocus關(guān)鍵字:stm32  影子寄存器  預(yù)裝載寄存器 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

一直沒(méi)搞清楚stm32定時(shí)器的TIM_OC1PreloadConfig、TIM_ARRPreloadConfig函數(shù)的作用,影子寄存器、預(yù)裝載寄存器、重載寄存器的概念。今天來(lái)研究一下:


首先看定時(shí)器的框圖:

圖中有陰影的小方框,代表該功能對(duì)應(yīng)的寄存器有影子寄存器,也就是:PSC預(yù)分頻器、自動(dòng)重裝載寄存器、REP寄存器和4個(gè)通道的捕獲/比較寄存器。


可以看到這幾個(gè)寄存器都是經(jīng)常用到的,而且存在定時(shí)器工作過(guò)程中修改他們的可能性。在定時(shí)器工作過(guò)程中修改他們的值,就會(huì)出現(xiàn)一個(gè)問(wèn)題了:如果上次ARR的值是200,通道1的比較寄存器CCR1值是100,產(chǎn)生占空比為50%的PWM。這個(gè)時(shí)候我要改變PWM的頻率,我把ARR的值改為100,CCR1的值還沒(méi)來(lái)得及更改,那么占空比肯定就會(huì)出問(wèn)題,所以我就需要讓他們同步修改。以前ARR=200,CCR1=100,提高頻率后ARR=100,CCR1=50,我需要這兩個(gè)寄存器的值同步修改,最好還是讓他們計(jì)數(shù)完一個(gè)周期后再修改,那么進(jìn)入下一個(gè)周期ARR、CCR1同步修改過(guò)去,對(duì)PWM的占空比就沒(méi)有一點(diǎn)影響了。


為了達(dá)到這個(gè)目的,就得先用一個(gè)寄存器A把修改的值保存好(ARR_A=100,CCR1_A=50),一旦上一個(gè)周期結(jié)束,給一個(gè)信號(hào),立即就把寄存器A的值賦值過(guò)去,立即生效,這樣就完成了最理想的在定時(shí)器運(yùn)行中修改寄存器的過(guò)程。下面對(duì)應(yīng)到stm32中:


有影子寄存器的寄存器實(shí)際上對(duì)應(yīng)了兩個(gè)寄存器:一個(gè)是用戶可以寫入或讀出數(shù)據(jù)的寄存器,稱為preload register(預(yù)裝載寄存器),另一個(gè)是用戶看不見的、但在操作中真正起作用的寄存器稱為shadow register(影子寄存器)。我們修改的定時(shí)器周期、預(yù)分頻系數(shù)、通道的比較值等都是修改的表面那個(gè)預(yù)裝載寄存器,要讓這個(gè)修改起作用,就還要把預(yù)裝載寄存器的值賦給影子寄存器才行。


從ARR預(yù)裝載寄存器傳送到影子寄存器,有兩種方式,一種是立刻更新,一種是等觸發(fā)事件之后更新;這兩種方式主要取決于寄存器TIMx->CR1中的“APRE”位:

APRE=0,當(dāng)ARR值被修改時(shí),同時(shí)馬上更新影子寄存器的值;

APRE=1,當(dāng)ARR值被修改時(shí),必須在下一次事件UEV發(fā)生后才能更新影子寄存器的值;

這就是TIM_ARRPreloadConfig(TIM1, ENABLE);函數(shù)的作用:


#define  TIM_CR1_ARPE     ((uint16_t)0x0080)

 

void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState)

{

  if (NewState != DISABLE)

  {

    TIMx->CR1 |= TIM_CR1_ARPE;

  }

  else

  {

    TIMx->CR1 &= (uint16_t)~((uint16_t)TIM_CR1_ARPE);

  }

}


4個(gè)通道的捕獲/比較寄存器也是同樣的道理,從CCRx的預(yù)裝載寄存器傳送到影子寄存器由下面的位控制:

TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);函數(shù)的作用就是修改這個(gè)位:


#define  TIM_CCMR1_OC1PE        ((uint16_t)0x0008)

#define TIM_OCPreload_Enable    ((uint16_t)0x0008)

 

void TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload)

{

  uint16_t tmpccmr1 = 0;

 

  tmpccmr1 = TIMx->CCMR1;

  tmpccmr1 &= (uint16_t)~((uint16_t)TIM_CCMR1_OC1PE);

  tmpccmr1 |= TIM_OCPreload;

  TIMx->CCMR1 = tmpccmr1;

}

 


再給幾個(gè)時(shí)序圖


1、APRE=0,直接給ARR影子寄存器賦值的情況:

可以看到之前ARR=FF,給ARR賦值為36后,馬上就生效了,并在等于36時(shí)發(fā)生了溢出。


2、APRE=1,在下一個(gè)周期再更新值的情況:

可以看到之前ARR=F5,這個(gè)時(shí)候修改ARR的值為36,只有表面的重加載寄存器值更改了,真正起作用的影子寄存器并沒(méi)有更改。等到上一個(gè)周期結(jié)束,發(fā)生更新事件,影子寄存器才更改。

關(guān)鍵字:stm32  影子寄存器  預(yù)裝載寄存器 引用地址:stm32影子寄存器、預(yù)裝載寄存器

上一篇:使用stm32的ADC得到準(zhǔn)確的電壓
下一篇:STM32之電量采集

推薦閱讀

電子網(wǎng)消息,鴻海旗下群創(chuàng)光電2013年為降低應(yīng)收帳款投資風(fēng)險(xiǎn),透過(guò)中間代理商出售面板給夏普公司蘇州常熟廠,卻爆出群創(chuàng)行動(dòng)產(chǎn)品業(yè)務(wù)第一總處長(zhǎng)楊桂康、業(yè)務(wù)三處長(zhǎng)林肯同,連手收取廠商回扣達(dá)3000萬(wàn)元新臺(tái)幣,臺(tái)灣地區(qū)新北地院26日依背信罪判楊、 林各6月徒刑,均可易科罰金。2013年起,林肯同安排某科技公司擔(dān)任群創(chuàng)光電對(duì)日本夏普公司面板代理商,以降...
存儲(chǔ)級(jí)內(nèi)存(SCM)克服了NAND閃存的局限性,因而勢(shì)必會(huì)取而代之。 存儲(chǔ)級(jí)內(nèi)存(SCM)這種RAM能夠像NAND閃存那樣保保存其內(nèi)容,但兼具DRAM的速度,最終將會(huì)取代閃存成為首選的高速存儲(chǔ)介質(zhì)。 這是HPE旗下3PAR存儲(chǔ)部門副總裁兼總經(jīng)理Ivan Iannaccone的預(yù)測(cè)。不過(guò)他補(bǔ)充道,這需要借以一段時(shí)日。 他說(shuō):“這不會(huì)在一夜之間發(fā)生。SCM變得經(jīng)濟(jì)上可行只是時(shí)間問(wèn)...
?本文將討論信號(hào)集成和硬件工程師在設(shè)計(jì)或調(diào)試速度高達(dá)幾個(gè)Gb每秒的連接時(shí)所面臨的挑戰(zhàn)。無(wú)論是進(jìn)行下一代高分辨率視頻顯示、醫(yī)學(xué)成像、數(shù)據(jù)存儲(chǔ)或是在最新的高速以太網(wǎng)和電信協(xié)議中,我們都面臨相同的信號(hào)集成挑戰(zhàn)。那就從過(guò)度均衡開始討論。?現(xiàn)代專用集成電路(ASIC)中的串行器與解串器(SERDES)與現(xiàn)場(chǎng)可編程門陣列(FPGA)通常能夠獲得損耗最多30dB...
1月27日消息,今日,三星GALAXY蓋樂(lè)世官方微博宣布,國(guó)行三星Galaxy Note 20和Note 20 Ultra兩款機(jī)型已正式推送基于安卓11打造的One UI 3正式版。  據(jù)悉,目前已完成One UI 3正式版的機(jī)型包括S20 Ultra 5G、S20+ 5G和S20 5G三款設(shè)備。  此次的One UI 3升級(jí)計(jì)劃覆蓋多種機(jī)型數(shù)十款設(shè)備,升級(jí)周期持續(xù)至今年9月。  去年,三星發(fā)...

史海拾趣

問(wèn)答坊 | AI 解惑

【藏書閣】數(shù)字萬(wàn)用表電路圖集

[ 本帖最后由 wzt 于 2010-3-5 16:48 編輯 ]…

查看全部問(wèn)答∨

【FPGA告警信息】無(wú)波形文件輸入

Warning: Can\'t find signal in vector source file for input pin |whole|clk10m原因:因?yàn)槟愕牟ㄐ畏抡嫖募?vector source file )中并沒(méi)有把所有的輸入信號(hào)(input pin)加進(jìn)去,對(duì)于每一個(gè)輸入都需要有激勵(lì)源的…

查看全部問(wèn)答∨

WinCE5.0內(nèi)存映射文件操作的疑惑

WinCE5.0內(nèi)存映射文件操作的疑惑, 有這么一段程序: // 設(shè)定內(nèi)存映射大小、偏移量等參數(shù) __int64 qwFileSize = 0xD59F80;//文件的最大字節(jié)數(shù)13.3MB(0xD59F80)/64MB(0x4000000)/128MB(0x8000000) __int64 qwFileOffset = 0;      & ...…

查看全部問(wèn)答∨

錄音中的噪音怎么去除!

請(qǐng)各位幫忙:     能不能用軟件的方式處理這種噪音! 或者其他的方式! 其他方案! 謝謝!…

查看全部問(wèn)答∨

學(xué)嵌入式如何入手()給分

我不是計(jì)算機(jī)科班畢業(yè)。硬件知識(shí)一點(diǎn)不懂,不過(guò)軟件沒(méi)問(wèn)題(自學(xué)的)。現(xiàn)在在一家軟件公司作開發(fā),想學(xué)嵌入式。怎么入手,看什么書?先學(xué)什么?詳細(xì)點(diǎn)。給分了…

查看全部問(wèn)答∨

ADC采集的數(shù)據(jù)怎么那么不準(zhǔn)

我在他的AD上外部接了干電池, 我把電壓調(diào)整到2.8V,采樣250次后 我看數(shù)據(jù), 發(fā)現(xiàn)數(shù)據(jù) 從3470----3420 的數(shù)據(jù)都有,真的叫人郁悶 請(qǐng)問(wèn)香主 他的誤差有那么大么.我把電路貼出來(lái), 不知道那位采的數(shù)據(jù)精確點(diǎn)啊…

查看全部問(wèn)答∨

【為C2000做貢獻(xiàn)】SVPWM資料全集+代碼

這里基本上包括了網(wǎng)上所有有用的SVPWM資料,只要一鍵就可以得到所有的資料。看咱們論壇這方面的資料比較就上傳上來(lái)供大家學(xué)習(xí)! 具體內(nèi)容如下: 代碼如下: [ 本帖最后由 fxw451 于 2011-4-12 15:05 編輯 ]…

查看全部問(wèn)答∨

STM32的USB問(wèn)題

我使用ST提供stm32f105-07_f2xx_usbhost_lib.zip的USB庫(kù)在我的板子中進(jìn)行測(cè)試時(shí),板子作為從設(shè)備。用它提供的例程從設(shè)備作為HID設(shè)備時(shí),我不管如何插、拔USB時(shí),電腦都能識(shí)別設(shè)備。當(dāng)從使用VCP例程時(shí),使用JLink進(jìn)行仿真,點(diǎn)擊RUN時(shí),插入U(xiǎn)SB設(shè)備, ...…

查看全部問(wèn)答∨

2個(gè)FPGA例程,LED流水燈和4位計(jì)數(shù)器

例程已經(jīng)在板子上跑過(guò)了,附帶詳細(xì)解釋 syn_cnter_4.qpf4位計(jì)數(shù)器led_w.qpfLED流水燈,方向固定…

查看全部問(wèn)答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 广安市| 霍山县| 张掖市| 九台市| 怀安县| 阿瓦提县| 自贡市| 长岛县| 清水河县| 榕江县| 遂宁市| 邯郸市| 建始县| 渝中区| 波密县| 英吉沙县| 富川| 潜江市| 烟台市| 成武县| 兴仁县| 连山| 永安市| 平远县| 巴马| 庄浪县| 皮山县| 怀安县| 滁州市| 平顶山市| 万州区| 楚雄市| 镇巴县| 页游| 土默特左旗| 贞丰县| 仁怀市| 澄迈县| 常宁市| 宁陵县| 龙岩市|