下載手機(jī)汽配人

MSP430的定時器B

TBCTL的TBCLGRP1~0是什么意思,怎么用呢?
提問者:網(wǎng)友 2017-01-23
最佳回答
和定時器A一樣用:) 給端程序先看看: /********************************************************* 程序功能:用固定頻率的方波驅(qū)動蜂鳴器,共16種音調(diào);在蜂鳴器 發(fā)出不同音調(diào)的同時,LED發(fā)光以二進(jìn)制數(shù)字形式指示 當(dāng)前音調(diào)的編號(1~16) ---------------------------------------------------------- 測試說明:聆聽蜂鳴器發(fā)聲的音調(diào)變化。 **********************************************************/ #include ""MSP430x14x.h"" #include ""CLK.h"" #include ""LCD1602.h"" unsigned char step = 0xff; void main() { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; Init_CLK();//8Mhz起震 BCSCTL2 |=SELM_2+SELS;//MCLK和SMCLK選擇高頻晶振 Init_LCD(); LCD_set_position(0x00); LCD_prints(""BUZZER PLAYER:""); LCD_set_position(0x40); LCD_prints(""Current:""); TACCTL0 |=CCIE;//使能比較中斷 TACTL=TASSEL_2+ID_3;//TimerA選擇SMCLK,8分頻后為1MHz TBCCTL0 |=CCIE; TBCTL=TASSEL_1+ID_3+MC_1;//時鐘源ACLK/8,up mode TBCCR0=4096-1;//(32768/8),周期為1秒 P3DIR |=BIT7; P3OUT |=BIT7; _EINT(); LPM1; } #pragma vector=TIMERA0_VECTOR __interrupt void Timer_A (void)//蜂鳴器發(fā)聲 { P3OUT ^=BIT7; } #pragma vector=TIMERB0_VECTOR __interrupt void Timer_B(void)//改變頻率 { if(step==0xff) TACTL |=MC_1; step++; LCD_set_position(0x48);LCD_printc(step+48); switch(step) { case 0: TACCR0 = 5000;break; // 100Hz case 1: TACCR0 = 2500; break; // 200Hz case 2: TACCR0 = 1250; break; // 400Hz case 3: TACCR0 = 625; break; // 800Hz case 4: TACCR0 = 500; break; // 1KHz case 5: TACCR0 = 250; break; // 2KHz case 6: TACCR0 = 167; break; // 3KHz case 7: TACCR0 = 125; break; // 4KHz case 8: TACCR0 = 100; break; // 5KHz case 9: TACCR0 = 83; break; // 6KHz case 10: TACCR0 = 71; break; // 7KHz case 11: TACCR0 = 63; break; // 8KHz case 12: TACCR0 = 56; break; // 9KHz case 13: TACCR0 = 50; break; // 10KHz case 14: TACCR0 = 33; break; // 15KHz case 15: TACCR0 = 25; break; // 20KHz case 16: step = 0xff; // 循環(huán)播放 } }
回答者:網(wǎng)友
產(chǎn)品精選
在移動端查看: MSP430的定時器B
搜索問答
還沒有汽配人賬號?立即注冊

我要提問

汽配限時折扣

本頁是網(wǎng)友提供的關(guān)于“MSP430的定時器B”的解答,僅供您參考,汽配人網(wǎng)不保證該解答的準(zhǔn)確性。