MSP430 TIMER A定時器設定示例

2021-10-07 21:05:37 字數 1522 閱讀 9210

(先記下來,以後看,說不定就會了呢)

問題很多,咱啥都不懂,能看出歡迎討論哈~

直接設定:

ta0cctl0 = ccie;                          // ccr0 interrupt enabled

ta0ccr0 = 1000;//意思是週期為1000ms=1hz

ta0ctl = tassel_2 + mc_1 + taclr; // 選擇時鐘源smclk,+遞增模式upmode:計時器遞增計數到 taxccr0+clear tar

間接?(利用封裝好的函式)

void smclk_xt2_4mhz(void)

while (sfrifg1&ofifg); // test oscillator fault flag

ucsctl6 &= ~xt2drive0; // decrease xt2 drive according to

// expected frequency

ucsctl4 |= sels_5 + selm_5; // smclk=mclk=xt2

}

再經過分頻,配置暫存器等等,來獲得所需要的時間的定時器???(暫存器的配置自己看手冊配)

smclk_xt2_4mhz();//設定smclk使用xt2, 頻率為4mhz

ucsctl5|=divs__32;//使用usc統一時鐘系統進行預分頻,將smclk進行32分頻

ta0ctl |=tassel_2 + mc_1 + taclr;//配置a0計數器,時鐘源smclk,上公升模式,同時清除計數器//*配置計數器

//tassel_2選擇了smclk,mc_1計數模式,,最後清零taclr

//ta0ex0 |= taidex_1;//a0計數器分頻,2分頻

ta0cctl0 = outmod_2 + ccie;//捕獲比較暫存器0輸出,輸出模式為2,同時使能定時器中斷(ccr0單源中斷),ccie捕獲比較暫存器的使能配置

ta0ccr0 = 5;//捕獲比較暫存器0//配置捕獲比較器

4mhz經過32分頻後得到125000hz,相當於得到的定時器中斷為(ta0ccr0/125000)s,在這裡就是1/25000s也就是25000hz乙個中斷週期?

計數器每次計數到ta0ccr0時產生中斷

附上中斷服務函式,然後不要忘了使能全域性中斷

gie實際上是cpu中的sr(status register)暫存器中的一位。sr(status register)暫存器主要用來記錄指令的工作狀態。

這句的意思是將sr的gie位設定為1,bis即bit set。

對應的關全域性中斷操作是

即將sr的gie位清除,置0。bic即bit clear。

基於msp430Timer A定時器的LED

相信學過430的朋友對timer a應該不陌生吧,反正我是難忘了,感覺學的比stm32的定時器都吃力啊,看起來簡單,但是,就是學起來吃力,怪我咯!閒話少說,今天我就來總結一下我學習timer a的痛苦經歷。首先,我們要知道timer a的基本結構吧 總結起來就兩點 16位的定時 計數器3個捕獲 比較...

msp430學習筆記之定時器A

1 定時器a 圖 1 定時器 a 2 定時器a 的四種計數模式 1.停止模式。2.增計數模式。產生兩個中斷標誌 當計數到跟taccr0 一樣的時候,就返回 0,重新計數。當計數到 taccr0 的同時產生乙個中斷標誌 ccifg 而當計數器溢位返回零的同時又同時產生乙個中斷標誌 taifg 如圖 圖...

MSP430 定時器輸出PWM波形

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