|
#include "msp430G2553.h"
//************主函數(shù)***************************
void main()
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
BCSCTL1 = CALBC1_1MHZ; //時(shí)鐘為1M,課設(shè)8M、12M和16M
DCOCTL = CALDCO_1MHZ; //同上(并同時(shí)設(shè)置)
BCSCTL2 |=SELM_1+DIVM_3;//SELM_1時(shí)鐘源選擇,0、1為DCOCLK,
//2為XT2CLK/LFXTCLK,3為L(zhǎng)FXTCLK
//DIVM_1,為所選的時(shí)鐘分頻,0不分頻,1為2分頻,2為4分頻,3為8分頻
////////////
P1DIR|=0x41; //P1.6和P1.0為輸出,控制LED
P1OUT |=0x01;
P1OUT &=~0x40;
//////////////////
TACTL |= TASSEL_2+ID_3+MC_1;
//TASSEL_x計(jì)數(shù)器時(shí)鐘源選擇,x=0,外時(shí)鐘TACLK,1選ACLK,2選SMCLK,3選外部時(shí)鐘
// ID_x是分頻選擇,x=0不分頻,1是2分頻,2是4分頻,3是8分頻后(125K)
// MC_x是計(jì)數(shù)模式,x=0,停止,1是up到CCR0的值,2是連續(xù)到滿0xffff,
//3增減計(jì)數(shù),先增到CCR0的值,再減到0
TACCR0 =25000; //計(jì)到2500,約20ms
TACCTL0 |= CCIE; // CCR0 interrupt enabled
_BIS_SR(GIE); //開總中斷
while(1);
}
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A(void)
{
//TACCTL0&=~ CCIE; //關(guān)中斷
static int cc=0;
cc+=1;
if(cc==20) //1s=1000ms=20*50 定時(shí)
{
P1OUT^=0x41; //P1.6 LED取反
cc=0;
}
}
|
|