/****************************************************************************
* å 称ï¼ClkInit
* å è½ï¼æ¶éç³»ç»åå§å MCLK为8MHzï¼SMCLK为1MHz
* å
¥å£åæ°ï¼æ
* åºå£åæ°ï¼æ
****************************************************************************/
void Init_Clk(void)
{
unsigned int i;
WDTCTL = WDTPW+WDTHOLD; //åæ¢çé¨ç
BCSCTL1 &= ~XT2OFF; //使TX2ææ,TX2ä¸çµæ¶é»è®¤ä¸ºå
³éç.
do
{
IFG1 &= ~OFIFG; //æ¸
æ¯è¡å¨å¤±ææ å¿
for(i= 0xff; i>0; i--); //延æ¶,å¾
稳å®.
}
while ((IFG1 & OFIFG)!=0); //è¥æ¯è¡å¨å¤±ææ å¿ææ,ä¸ç´çå¾
BCSCTL2 |= SELM_2+DIVM_3; //使MCLKéæ©XT2ä¸MCLK=XT2/8=1MHZ
BCSCTL2 |= SELS+DIVS_3; //使SMCLKéæ©XT2ä¸SMCLK=XT2/8=1MHZ
}
void main(void)
{
WDTCTL = WDTPW+WDTHOLD; //åæ¢çé¨ç
Init_Clk(); //åå§åæ¶é
P1DIR|=0x0C; //P1.2ï¼P1.3为模ååè½è¾åºï¼0000 1100,对åºCCR1,CCR2
P1SEL|=0x0C; // 设P1.2,P1.3为模ååè½TA1/2ï¼0000 1100 é»è®¤ä¸ºæ¯è¾å¨å·¥ä½æ¹å¼
CCR0=512-1;
CCTL1=OUTMOD_7; //设CCR1è¾åºåå
为å¤ä½/ç½®ä½æ¨¡å¼
CCR1=384; //å 空æ¯384/512=75%
CCTL2=OUTMOD_7; //设CCR2è¾åºåå
为å¤ä½/ç½®ä½æ¨¡å¼
CCR2=128; //å 空æ¯128/512=25%
TACTL=TASSEL_1+MC_1; //å®æ¶å¨çæ¶éæºéæ©ä¸ºè¾
å©æ¶é32.768kHzï¼å¢è®¡æ°æ¨¡å¼ï¼å¦ææ¯è¿ç»è®¡æ°æ¨¡å¼å¯ä»¥ä¸ï¼ä¸å¯ä»¥ï¼ï¼
//ä»0å¼å§è®¡æ°å°CCR0ï¼éå¤ï¼æ以æ¤å¤ä¸éè¦åå¤è®¾å®åå§å¼
//ä¸æ¦è®¾å®å¥½è®¡æ°æ¨¡å¼ï¼è®¡æ°å°±å¼å§ï¼ä¸åäº52åçæº
_BIS_SR(LPM3_bits); //è¿å
¥ä½åè模å¼3,ä¹å¯ä»¥åæï¼_EINT; LPM3;
}
追é®åµåµ