MSP430程式庫十一定時器TA的PWM輸出

2022-10-17 14:12:19 字數 2061 閱讀 3908

定時器是微控制器常用的其本裝置,用來產生精確計時或是其他功能;msp430的定時器不僅可以完成精確定時,還能產生pwm波形輸出,和捕獲時刻值(上公升沿或是下降沿到來的時候)。這裡完成乙個比較通用的pwm波形產生程式。

硬體介紹:

msp430系列微控制器的timera結構複雜,功能強大,適合應用於工業控制,如數位化電機控制,電表和手持式儀表的理想配置。它給開發人員提供了較多靈活的選擇餘地。當pwm 不需要修改占空比和時間時,timera 能自動輸出pwm,而不需利用中斷維持pwm輸出。

msp430f16x和msp430f14x微控制器內部均含有兩個定時器,ta和tb;ta有三個模組,ccr0-ccr2;tb含有ccr0-ccr67個模組;其中ccr0模組不能完整的輸出pwm波形(只有三種輸出模式可用);ta可以輸出完整的2路pwm波形;tb可以輸出6路完整的pwm波形。

定時器的pwm輸出有有8種模式:

輸出模式0 輸出模式:輸出訊號outx由每個捕獲/比較模組的控制暫存器cctlx中的outx位定義,並在寫入該暫存器後立即更新。最終位outx直通。

輸出模式1 置位模式:輸出訊號在tar等於ccrx時置位,並保持置位到定時器復位或選擇另一種輸出模式為止。

輸出模式2 pwm翻轉/復位模式:輸出在tar的值等於ccrx時翻轉,當tar的值等於ccr0時復位。

輸出模式3 pwm置位/復位模式:輸出在tar的值等於ccrx時置位,當tar的值等於ccr0時復位。

輸出模式4 翻轉模式:輸出電平在tar的值等於ccrx時翻轉,輸出週期是定時器週期的2倍。

輸出模式5復位模式:輸出在tar的值等於ccrx時復位,並保持低電平直到選擇另一種輸出模式。

輸出模式6pwm翻轉/置位模式:輸出電平在tar的值等於ccrx時翻轉,當tar值等於ccr0時置位。

輸出模式7pwm復位/置位模式:輸出電平在tar的值等於ccrx時復位,當tar的值等於ccr0時置位。

下圖是增計數模式下的輸出波形(本程式使用的是增模式3和7):

計數模式:

增計數模式

捕獲/比較暫存器ccr0用作timer_a增計數模式的週期暫存器,因為ccr0為16位暫存器,所以該模式適用於定時週期小於65 536的連續計數情況。計數器tar可以增計數到ccr0的值,當計數值與ccr0的值相等(或定時器值大於ccr0的值)時,定時器復位並從0開始重新計數。

連續計數模式

在需要65 536個時鐘週期的定時應用場合常用連續計數模式。定時器從當前值計數到0ffffh後,又從0開始重新計數

增/減計數模式

需要對稱波形的情況經常可以使用增/減計數模式,該模式下,定時器先增計數到ccr0的值,然後反向減計數到0。計數週期仍由ccr0定義,它是ccr0計數器數值的2倍。

ta定時器有比較、捕獲兩種工作方式;比較可以產生pwm波形等,捕獲可以精確的測量時間;這裡用的是比較輸出。

硬體介紹就這麼多了,其他的可以參考msp430x1xx_family_users_guide(使用者指南)。

程式實現:

本程式是直接從msp430f42x移植的,只改動了埠就能正常使用了。由此,430的模組在不同的系列中是通用的,有關暫存器是一樣的;只是也許外部埠不太一樣。

程式初始化部分:完成ta相關暫存器的初始化。

char tapwminit(char clk,char div,char mode1,char mode2)

switch(div選擇分頻係數

switch(mode1設定pwm通道1的輸出模式。

switch(mode2設定pwm通道1的輸出模式。

return(1);

}主要是設定tactl暫存器,讓ta工作於增模式,設定時鐘源和分頻;cctlx設定對應的輸出模式;並且開啟相應埠的第二功能。

設定週期函式:設定pwm波形的週期,單位是多少個taclk週期。

void tapwmsetperiod(unsigned int period)

工作於增模式時,ta計數到taccr0,設ccr0就完成了週期的設定。

設定占空比:設定ta的pwm輸出的有效電平的時間。

void tapwmsetduty(char channel,unsigned int duty)

}根據引數分別設定每一路的引數。

MSP430定時器A說明

msp430的定時器a有比較 捕獲兩種工作模式 比較模式 這是定時器的預設模式,當在比較模式下的時候,與捕獲模式相關的硬體停止工作,如果這個時候開啟定時器中斷,然後設定定時器終值 將終值寫入taccrx 開啟定時器,當tar的值增到taccrx的時候,中斷標誌位ccifgx置1,同時產生中斷。若中斷...

基於msp430的1602液晶驅動底層源程式

include include typedef unsigned char uchar typedef unsigned int uint 巨集定義 define datadir p4dir define dataport p4out define busy 0x80 define ctrldir ...

MSP430無磁熱量表的設計體會

無磁熱量表的設計體會 無磁熱量表的設計體會 利爾達科技 陳振華 摘要 本文介紹一種新型的無磁流量檢測技術,即電極檢測技術,電極取樣原理,溫度感測器電路的設計及能量計算方法。關鍵詞 msp430f135,pt1000溫度感測器 一 引言 熱量表的流量檢測方法有韋根 lc等感測器設計方法,但這些設計從嚴...