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

歷史上的今天

今天是:2024年09月07日(星期六)

2020年09月07日 | STM8時基單元

發(fā)布者:Blissful5 來源: eefocus關(guān)鍵字:STM8  時基單元  寄存器 手機(jī)看文章 掃描二維碼
隨時隨地手機(jī)看文章

時基單元包含:

STM8 時基單元
(圖29:STM8 時基單元)

16位計數(shù)器,預(yù)分頻器,自動重載寄存器和重復(fù)計數(shù)器寄存器都可以通過軟件進(jìn)行讀寫操作。自動重載寄存器由預(yù)裝載寄存器和影子寄存器組成。
可在在兩種模式下寫自動重載寄存器:

  • 自動預(yù)裝載已使能(TIM1_CR1寄存器的ARPE位置位)。在此模式下,寫入自動重載寄存器的數(shù)據(jù)將被保存在預(yù)裝載寄存器中,并在下一個更新事件(UEV)時傳送到影子寄存器。

  • 自動預(yù)裝載已禁止(TIM1_CR1寄存器的ARPE位清除)。在此模式下,寫入自動重載寄存器的數(shù)據(jù)將立即寫入影子寄存器。
    更新事件的產(chǎn)生條件:

  • 計數(shù)器向上或向下溢出。

  • 軟件置位了TIM1_EGR寄存器的UG位。

  • 時鐘/觸發(fā)控制器產(chǎn)生了觸發(fā)事件。
    在預(yù)裝載使能時(ARPE=1),如果發(fā)生了更新事件,預(yù)裝載寄存器中的數(shù)值(TIM1_ARR)將寫入影子寄存器中,并且TIM1_PSCR寄存器中的值將寫入預(yù)分頻器中。
    置位TIM1_CR1寄存器的UDIS位將禁止更新事件(UEV)。
    計數(shù)器由預(yù)分頻器的輸出CK_CNT驅(qū)動,而CK_CNT僅在IM1_CR1寄存器的計數(shù)器使能位(CEN)被置位時才有效。
    注意:在使能了CEN位的一個時鐘周期后,計數(shù)器才開始計數(shù)。

讀寫16位計數(shù)器

寫計數(shù)器的操作沒有緩存,并且可以在任何時候?qū)慣IM1_CNTRH和TIM1_CNTRL寄存器,因此我們建議不要在計數(shù)器運行時寫入新的數(shù)值,以免寫入了錯誤的數(shù)值。
讀計數(shù)器的操作帶有8位的緩存。在用戶讀了高位(MS)字節(jié)后,低位(LS)字節(jié)將被自動緩存,緩存的數(shù)據(jù)在16位的讀操作完成之前不會有變化,圖30解釋了這一過程。
注意:不要使用LDW指令來讀取16位計數(shù)器的值,因為此指令先讀低位(LS)字節(jié),這樣讀出的數(shù)值是錯誤的。

STM8 讀16位計數(shù)器的過程(TIM1_CNTR)
(圖30:STM8 讀16位計數(shù)器的過程(TIM1_CNTR))

16位TIM1_ARR寄存器的寫操作

預(yù)裝載寄存器中的值將寫入16位的TIM1_ARR寄存器中,此操作由兩條指令完成,每條指令寫入1個字節(jié),高位(MS)字節(jié)是先寫入的。
影子寄存器在高位(MS)字節(jié)寫入時被鎖定,并保持到低位(LS)字節(jié)寫完。不要使用LDW指令,因為此指令先寫低位(LS)字節(jié),這將導(dǎo)致寫入的數(shù)值錯誤。

STM8預(yù)分頻器

預(yù)分頻器的實現(xiàn):

  • TIM1的預(yù)分頻器基于一個由16位寄存器(TIM1_PSCR)控制的16位計數(shù)器。由于這個控制寄存器帶有緩沖器,因此它能夠在運行時被改變。預(yù)分頻器可以將計數(shù)器的時鐘頻率按1到65536之間的任意值分頻。
    計數(shù)器的頻率可以由下式計算:
    fCK_CNT=fCK_PSC/(PSCR[15:0]+1)
    預(yù)分頻器的值由預(yù)裝載寄存器寫入,保存了當(dāng)前使用值的影子寄存器在低位(LS)寫入時被載入。
    需兩次單獨的寫操作來寫16位寄存器,高位(MS)先寫。不要使用先寫低位(LS)的LDW指令。
    新的預(yù)分頻器的值在下一次更新事件到來時被采用。
    對TIM1_PSCR寄存器的讀操作通過預(yù)裝載寄存器完成,因此不需要特別的關(guān)注。

向上計數(shù)模式

在向上計數(shù)模式中,計數(shù)器從0計數(shù)到用戶定義的比較值(TIMx_ARR寄存器的值),然后重新從0開始計數(shù)并產(chǎn)生一個計數(shù)器溢出事件,同時,如果TIM1_CR1寄存器的UDIS位是0,將會產(chǎn)生一個更新事件(UEV)。圖31描述了向上計數(shù)模式。

STM8 向上計數(shù)模式的計數(shù)器
(圖31:STM8 向上計數(shù)模式的計數(shù)器)

置位TIMx_EGR寄存器的UG位(通過軟件方式或者使用從模式控制器)也同樣可以產(chǎn)生一個更新事件。
使用軟件置位TIMx_CR1寄存器的UDIS位,可以禁止更新事件,這樣可以避免在更新預(yù)裝載寄存器時更新影子寄存器。在UDIS位被清除之前,將不產(chǎn) 生更新事件。但是在應(yīng)該產(chǎn)生更新事件時,計數(shù)器仍會被清0,同時預(yù)分頻器的計數(shù)也被清0(但預(yù)分頻器的數(shù)值不變)。此外,如果設(shè)置
了TIMx_CR1寄存器中的URS位(選擇更新請求),設(shè)置UG位將產(chǎn)生一個更新事件UEV,但硬件不設(shè)置UIF標(biāo)志(即不產(chǎn)生中斷請求)。這是為了避免在捕獲模式下清除計數(shù)器時,同時產(chǎn)生更新和捕獲中斷。
當(dāng)發(fā)生一個更新事件時,所有的寄存器都被更新,硬件同時(依據(jù)URS位)設(shè)置更新標(biāo)志位(TIMx_SR寄存器的UIF位):
自動裝載影子寄存器被重新置入預(yù)裝載寄存器的值(TIMx_ARR)。
預(yù)分頻器的緩存器被置入預(yù)裝載寄存器的值(TIMx_PSC寄存器的內(nèi)容)。
下圖給出一些例子,說明當(dāng)TIMx_ARR=0x36時,計數(shù)器在不同時鐘頻率下的動作。
圖32的預(yù)分頻為2,因此計數(shù)器的時鐘(CK_CNT)頻率是預(yù)分頻時鐘(CK_PSC)頻率的一半。
圖32禁止了自動裝載功能(ARPE=0),所以在計數(shù)器達(dá)到0x36時,計數(shù)器溢出,影子寄存器立刻被更新,同時產(chǎn)生一個更新事件。
圖32當(dāng)ARPE=0(ARR不預(yù)裝載),預(yù)分頻為2時的計數(shù)器更新。


(圖32:STM8 當(dāng)ARPE=0(ARR不預(yù)裝載),預(yù)分頻為2時的計數(shù)器更新)

圖33的預(yù)分頻為1,因此CK_CNT的頻率與CK_PSC一致。

圖33使能了自動重載(ARPE=1),所以在計數(shù)器達(dá)到0xFF產(chǎn)生溢出。0x36將在溢出時被寫入, 同時產(chǎn)生一個更新事件。


(圖33:STM8 ARPE=1(TIM1_ARR預(yù)裝載)時的計數(shù)器更新)

向下計數(shù)模式

在向下模式中,計數(shù)器從自動裝載的值(TIMx_ARR寄存器的值)開始向下計數(shù)到0,然后再從自動裝載的值重新開始計數(shù),并產(chǎn)生 一個計數(shù)器向下溢出事件。如果TIM1_CR1寄存器的UDIS位被清除,還會產(chǎn)生一個更新事件(UEV)。圖34描述了向下計數(shù)模式的計數(shù)器。


(圖34:STM8 ARPE=1(TIM1_ARR預(yù)裝載)時的計數(shù)器更新)

置位TIMx_EGR寄存器的UG位(通過軟件方式或者使用從模式控制器)也同樣可以產(chǎn)生一個更新事件。
置位TIMx_CR1寄存器的UDIS位可以禁止UEV事件。這樣可以避免在更新預(yù)裝載寄存器時更新影子寄存器。因此UDIS位清除之前不會產(chǎn)生更新事 件。然而,計數(shù)器仍會從當(dāng)前自動加載值重新開始計數(shù),并且預(yù)分頻器的計數(shù)器重新從0開始(但預(yù)分頻器不能被修改)。
此外,如果設(shè)置了TIMx_CR1寄存器中的URS位(選擇更新請求),設(shè)置UG位將產(chǎn)生一個更新事件UEV但不設(shè)置UIF標(biāo)志(因此不產(chǎn)生中斷),這是為了避免在發(fā)生捕獲事件并清除計數(shù)器時,同時產(chǎn)生更新和捕獲中斷。
當(dāng)發(fā)生更新事件時,所有的寄存器都被更新,并且(根據(jù)URS位的設(shè)置)更新標(biāo)志位(TIMx_SR寄存器中的UIF位)也被設(shè)置:
預(yù)分頻器的緩存器被存入預(yù)裝載的值(TIMx_PSC寄存器的值)。
當(dāng)前的自動加載寄存器被更新為預(yù)裝載值(TIMx_ARR寄存器中的內(nèi)容)。要注意自動裝載寄存器在計數(shù)器重載入之前被更新,因此下一個周期才是預(yù)期的值。
以下是一些當(dāng)TIMx_ARR=0x36時,計數(shù)器在不同時鐘頻率下的圖表。
下圖描述了在向下計數(shù)模式下,預(yù)裝載不使能時新的數(shù)值在下個周期時被寫入。


(圖35:STM8 ARPE=0(ARR不預(yù)裝載),預(yù)分頻為2時的計數(shù)器更新)


(圖36:STM8 ARPE=1(ARR預(yù)裝載),預(yù)分頻為1時的計數(shù)器更新)

中央對齊模式(向上/向下計數(shù))

在中央對齊模式,計數(shù)器從0開始計數(shù)到自動加載的值(TIMx_ARR寄存器)-1,產(chǎn)生一個計數(shù)器溢出事件,然后向下計數(shù)到0并且產(chǎn)生一個計數(shù)器下溢事件;然后再從0開始重新計數(shù)。
在此模式下,不能寫入TIMx_CR1中的DIR方向位。它由硬件更新并指示當(dāng)前的計數(shù)方向。
下圖給出一個中央對齊模式的例子。


(圖37:STM8 中央對齊模式的計數(shù)器)

如果定時器帶有重復(fù)計數(shù)器(如TIM1),在重復(fù)了指定次數(shù)(TIM1_RCR的值)的向上和向下溢出之后會產(chǎn)生更新事件(UEV)。否則每一次的向上向下溢出都會產(chǎn)生更新事件。
置位TIMx_EGR寄存器的UG位(通過軟件方式或者使用從模式控制器)也同樣可以產(chǎn)生一個更新事件。此時,計數(shù)器重新從0開始計數(shù),預(yù)分頻器也重新從0開始計數(shù)。
設(shè)置TIMx_CR1寄存器中的UDIS位可以禁止UEV事件。這樣可以避免在更新預(yù)裝載寄存器時更新影子寄存器。因此UDIS位被清為0之前不會產(chǎn)生更 新事件。然而,計數(shù)器仍會根據(jù)當(dāng)前自動重加載的值,繼續(xù)向上或向下計數(shù)。如果定時器帶有重復(fù)計數(shù)器,由于重復(fù)寄存器沒有雙重的
緩沖,新的重復(fù)數(shù)值將立刻生效,因此在修改時需要小心。
此外,如果設(shè)置了TIMx_CR1寄存器中的URS位(選擇更新請求),設(shè)置UG位將產(chǎn)生一個更新事件UEV但不設(shè)置UIF標(biāo)志(因此不產(chǎn)生中斷),這是為了避免在發(fā)生捕獲事件并清除計數(shù)器時,同時產(chǎn)生更新和捕獲中斷。
當(dāng)發(fā)生更新事件時,所有的寄存器都被更新,并且(根據(jù)URS位的設(shè)置)更新標(biāo)志位(TIMx_SR寄存器中的UIF位)也被設(shè)置。
預(yù)分頻器的緩存器被加載為預(yù)裝載(TIMx_PSC寄存器)的值。
當(dāng)前的自動加載寄存器被更新為預(yù)裝載值(TIMx_ARR寄存器中的內(nèi)容)。要注意到如果因為計數(shù)器溢出而產(chǎn)生更新,自動重裝載寄存器將在計數(shù)器重載入之 前被更新,因此下一個周期才是預(yù)期的值(計數(shù)器被裝載為新的值)。以下是一些計數(shù)器在不同時鐘頻率下的操作的例子:


(圖38:STM8 計數(shù)器時序圖,內(nèi)部時鐘分頻因子為1,TIMx_ARR=0x6,ARPE=1)

使用中央對齊模式的提示:

  • 啟動中央對齊模式時,計數(shù)器將按照原有的向上/向下的配置計數(shù)。也就是說TIM1_CR1寄存器中的DIR位將決定計數(shù)器是向上還是向下計數(shù)。此外,軟件不能同時修改DIR位和CMS位的值。

  • 不推薦在中央對齊模式下,計數(shù)器正在計數(shù)時寫計數(shù)器的值,這將導(dǎo)致不能預(yù)料的后果。
    具體的說:
    向計數(shù)器寫入了比自動裝載值更大的數(shù)值時(TIM1_CNT>TIM1_ARR),但計數(shù)器的計數(shù)方向不發(fā)生改變。例如計數(shù)器已經(jīng)向上溢出,但計數(shù)器仍然向上計數(shù)。
    向計數(shù)器寫入了0或者TIM1_ARR的值,但更新事件不發(fā)生。

  • 安全使用中央對齊模式的計數(shù)器的方法是在啟動計數(shù)器之前先用軟件(置位TIM1_EGR寄存器的UG位)產(chǎn)生一個更新事件,并且不在計數(shù)器計數(shù)時修改計數(shù)器的值。

重復(fù)計數(shù)器

STM8S時基單元解釋了計數(shù)器向上/向下溢出時更新事件(UEV)是如何產(chǎn)生的,然而事實上它只能在重復(fù)計數(shù)器的值達(dá)到0的時候產(chǎn)生。這個特性對產(chǎn)生PWM信號非常有用。
這意味著在每N次計數(shù)上溢或下溢時,數(shù)據(jù)從預(yù)裝載寄存器傳輸?shù)接白蛹拇嫫?TIMx_ARR自動重載入寄存器,TIMx_PSC預(yù)裝載寄存器,還有在比較模式下的捕獲/比較寄存器TIMx_CCRx),N是TIMx_RCR重復(fù)計數(shù)寄存器中的值。
重復(fù)計數(shù)器在下述任一條件成立時遞減:

  • 向上計數(shù)模式下每次計數(shù)器向上溢出時

  • 向下計數(shù)模式下每次計數(shù)器向下溢出時

  • 中央對齊模式下每次上溢和每次下溢時。

    • 雖然這樣限制了PWM的最大循環(huán)周期為128,但它能夠在每個PWM周期2次更新占空比
      在中央對齊模式下,因為波形是對稱的,如果每個PWM周期中僅刷新一次比較寄存器,則最大的分辨率為2xtCK_PSC。

重復(fù)計數(shù)器是自動加載的,重復(fù)速率由TIMx_RCR寄存器的值定義(參考圖39)。當(dāng)更新事件由軟件產(chǎn)生(通過設(shè)置 TIMx_EGR中的UG位)或者通過硬件的從模式控制器產(chǎn)生,則無論重復(fù)計數(shù)器的值是多少,立即發(fā)生更新事件,并且TIMx_RCR寄存器中的內(nèi)容被重 載入到重復(fù)計數(shù)器。


(圖39:STM8不同模式下更新速率的例子,及TIMx_RCR的寄存器設(shè)置)


關(guān)鍵字:STM8  時基單元  寄存器 引用地址:STM8時基單元

上一篇:STM8 中I2C讀寫函數(shù)
下一篇:STM8,延時函數(shù)

推薦閱讀

小時候喜歡聽周董哼哼唧唧的唱《紅模仿》里的那幾句詞:“唱反調(diào)是我的本性,出其不意是我的個性”。昨晚閑來無事,哼了一曲,哼著哼著想起前幾日,寫了一篇關(guān)于領(lǐng)克03的新車介紹。當(dāng)寫到傳動總成提到雙離合的時候,評論區(qū)炸窩了。為什么炸窩,大家肯定也都知道。其實領(lǐng)克這雙離合不算是出其不意,完全是預(yù)料之中的事,但大家看到雙離合這三個字就是不順眼...
(圖片來源:新思科技官網(wǎng))據(jù)外媒報道,新思科技(Synopsys)宣布NSITEXE, Inc.利用新思科技的設(shè)計、驗證和IP解決方案,以及DesignWare?IP,成功研制出基于DFP(數(shù)據(jù)流處理器)的SoC測試芯片。DFP具有獨特架構(gòu),結(jié)合了用于處理龐大和復(fù)雜數(shù)據(jù)集的CPU和GPU,允許并行數(shù)據(jù)管理,并支持獨立應(yīng)用的能力,具有高質(zhì)量和高功效的并行性。NSITEXE, Inc.總裁兼...
對于蘋果來說,今年突如其來的疫情打亂了他們的新機(jī)發(fā)布節(jié)奏,所以從目前的情況看,大家期待許久的iPhone 12系列可能會在下月發(fā)布。  據(jù)外媒最新報道稱,蘋果在今年新機(jī)的命名上,將遵循與2019年iPhone系列相同的命名方案,換句話說就是,2020年的iPhone將被稱為“iPhone 12”和“iPhone 12 Pro”。  蘋果之前做了一個數(shù)字上的加法,然后...
據(jù)外媒報道,領(lǐng)先汽車電子部件制造商Lucas TVS Ltd.和新一代鋰離子電池技術(shù)開發(fā)商24M Technologies, Inc.簽署許可和服務(wù)協(xié)議,將采用24M的創(chuàng)新和顛覆性SemiSolid? 平臺技術(shù),在印度建造千兆瓦級鋰離子電池制造工廠。(圖片來源:24M公司)預(yù)計2023年下半年,Lucas TVS將在金奈附近的Thervoy Kandigai建立首家具有世界級安全標(biāo)準(zhǔn)的工廠,并分兩個階...

史海拾趣

問答坊 | AI 解惑

8051接口VHDL代碼

本帖最后由 paulhyde 于 2014-9-15 03:32 編輯 8051接口VHDL代碼  …

查看全部問答∨

ce5.0 mips reboot

目前在調(diào)用mips reboot但都是掛在OEMinit code 如下 static void ResetWithSetSystemPowerState() {    typedef DWORD (*SetSystemPowerStateFunction)(LPCWSTR pwsSystemState, DWORD StateFlags, DWORD Options);    H ...…

查看全部問答∨

沒分了咋辦?

現(xiàn)在 沒有資源分了  資料都下載不了  撒  郁悶 那個撒…

查看全部問答∨

兩種串口中斷接受的差別

// 協(xié)議是  \'@\' + byte + byte + ‘#’ void serial(void) interrupt 4 {         if (RI)            {        if(SBUF==\'@\')   &nb ...…

查看全部問答∨

延時過程中的中斷問題

本人在EWAVR中寫了段測試程序,但關(guān)于延時過程中的中斷問題有些不解: 如果沒有延時程序,測試板,燈近似一直亮。 加入延時程序,可以看見燈運行的過程。 問題是延時過程中會不會產(chǎn)生中斷,為什么會出現(xiàn)上述情況.       中 ...…

查看全部問答∨

如何動態(tài)創(chuàng)建按鈕

對話框是后加的,是不自帶初始化函數(shù)的 按鈕的個數(shù)是不定的,要根據(jù)所給個數(shù)的不同動態(tài)變化 且這些動態(tài)生成的按鈕都必須按鈕按下后,有消息回應(yīng) 我是新手,所以有用詞不對,多多見諒。非常感謝…

查看全部問答∨

DC-DC升壓轉(zhuǎn)換器 基礎(chǔ)與設(shè)計流程

DC-DC升壓轉(zhuǎn)換器 基礎(chǔ)與設(shè)計流程…

查看全部問答∨

在電路設(shè)計中,關(guān)于“地”的接法

除了正確進(jìn)行接地設(shè)計、安裝,還要正確進(jìn)行各種不同信號的接地處理。控制系統(tǒng)中,大致有以下幾種地線: (1)數(shù)字地:也叫邏輯地,是各種開關(guān)量(數(shù)字量)信號的零電位。 (2)模擬地:是各種模擬量信號的零電位。 (3)信號地:通常為傳感器的 ...…

查看全部問答∨

請教各位nios II和quatus II 版本問題!

我在altera 官網(wǎng)下載并安裝了一個Nios II  9.1 Software Build Tools for Eclipse軟件,但是我的quatus II的版本是Quartus II 9.1sp2 Web Edition,在我打開的nios II EDS的時候出現(xiàn)了以下一個錯誤!         請各 ...…

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

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

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

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 陆良县| 会东县| 什邡市| 固始县| 蛟河市| 梁平县| 图木舒克市| 广安市| 新丰县| 永靖县| 广丰县| 手机| 江华| 德令哈市| 满洲里市| 敦化市| 屏边| 读书| 玉树县| 汉阴县| 加查县| 五华县| 余干县| 新昌县| 阿鲁科尔沁旗| 望谟县| 昂仁县| 莱阳市| 崇明县| 肃宁县| 疏附县| 奉节县| 永和县| 于田县| 恩平市| 黎平县| 济南市| 新竹县| 江陵县| 饶阳县| 那曲县|