瑞薩基礎(chǔ)學(xué)習(xí)之----PWM輸出 [復(fù)制鏈接] 脈沖寬度調(diào)制(PWM)是一種對(duì)模擬信號(hào)電平進(jìn)行數(shù)字編碼的方法。通過(guò)高分辨率計(jì)數(shù)器的使用,方波的占空比被調(diào)制用來(lái)對(duì)一個(gè)具體模擬信號(hào)的電平進(jìn)行編碼。PWM信號(hào)仍然是數(shù)字的,因?yàn)樵诮o定的任何時(shí)刻,滿幅值的直流供電要么完全有(ON),要么完全無(wú)(OFF)。電壓或電流源是以一種通(ON)或斷(OFF)的重復(fù)脈沖序列被加到模擬負(fù)載上去的。通的時(shí)候即是直流供電被加到負(fù)載上的時(shí)候,斷的時(shí)候即是供電被斷開(kāi)的時(shí)候。只要帶寬足夠,任何模擬值都可以使用PWM進(jìn)行編碼。 在瑞薩的單片機(jī)上是可以通過(guò)配置寄存器來(lái)使得系統(tǒng)輸出PWM波形的。數(shù)據(jù)手冊(cè)中的表6-1很好的說(shuō)明了如何使用R7F的TIME寄存器來(lái)使得其輸出PWM波形 PWM之所以要配置這么多的寄存器是(上表中只有少部分不用配置),是因?yàn)榛旧鲜嵌〞r(shí)器不僅有PWM輸出還有間隔定時(shí)器、方波輸出、外部事件計(jì)數(shù)器、分頻器、輸入脈沖間隔測(cè)量、輸入信號(hào)的高/低電平寬度的測(cè)量、延遲計(jì)數(shù)器、單觸發(fā)脈沖輸出功能,所以要通過(guò)配置寄存器來(lái)使得TIME從眾多功能中選擇我們所需要的 首先配置PER0中的TAU0EN為1,允許輸入時(shí)鐘的供應(yīng)。再用TPS0來(lái)分頻得到CK01、CK00這兩個(gè)時(shí)鐘(在選擇的通道0和通道1是的時(shí)鐘時(shí)可以選擇一個(gè)時(shí)鐘作為兩個(gè)時(shí)鐘,當(dāng)然也可以一個(gè)通道一個(gè)時(shí)鐘)。接下來(lái)是控制定時(shí)器單元啟停的TE0、TS0、TT0,其中數(shù)據(jù)手冊(cè)中對(duì)TE0進(jìn)行了詳細(xì)的說(shuō)明
也就是說(shuō)在這里我們不用配置。 TS0和TSH0寄存器是觸發(fā)寄存器,用于初始化定時(shí)器/計(jì)數(shù)器寄存器0n (TCR0n)并開(kāi)始各通道的計(jì)數(shù)操作。(啟用) TT0和TTH0寄存器為用于停止各通道的計(jì)數(shù)操作的觸發(fā)寄存器。(停用) 接下來(lái)是控制輸出寄存器TOE0、TO0、TOL0、TOM0,其中TOE0寄存器用于允許或禁止各通道的定時(shí)器輸出。TO0寄存器是各通道的定時(shí)器輸出的緩沖器寄存器。TOL0寄存器是用于控制各通道定時(shí)器輸出電平的寄存器。TOM0寄存器用于控制各通道的定時(shí)器輸出模式。 (這里我們選擇TOM0的TOM01為1:從屬通道輸出模式) 下面是TMR0xH和TMR0xL。TMR0n寄存器包括兩個(gè)8位寄存器,用于設(shè)置通道n的操作模式。該寄存器用于選擇工作時(shí)鐘(fMCK),選擇計(jì)數(shù)時(shí)鐘,選擇主/從屬,選擇16位或8位定時(shí)器(僅限通道1),設(shè)置開(kāi)始觸發(fā)和捕捉觸發(fā),選擇定時(shí)器輸入的有效邊沿,以及設(shè)置操作模式(間隔、捕捉、事件計(jì)數(shù)器、單計(jì)數(shù)、或者捕捉&單計(jì)數(shù)) 最后是TDR0xH和TDR0xL,其中初值和空占比都是由此設(shè)置。在執(zhí)行連續(xù)讀取或連續(xù)寫(xiě)入操作的過(guò)程中,如果插入對(duì)TDR0nH的寫(xiě)操作、對(duì)TDR0nL的讀操作或者對(duì)TCR0n的讀操作,則將不能保證讀取操作和寫(xiě)入操作的數(shù)據(jù)。 配套的源碼如下所示,直接用開(kāi)發(fā)工具打開(kāi)就行了: |
|
來(lái)自: logicsoft > 《瑞薩驅(qū)動(dòng)層》