天天看點

MSP430學習筆記1

/*************************************************** 

程式功能:控制8個LED閃爍,用于測試下載下傳功能是否正常 

--------------------------------------------------- 

測試說明:觀察LED閃爍 

孫浩,2010.7.20 

***************************************************/  

#include  <msp430x14x.h>  

/****************主函數****************/  

void main(void)  

{    

    /*下面六行程式關閉所有的IO口*/  

    P1DIR = 0XFF;P1OUT = 0XFF;  

    P2DIR = 0XFF;P2OUT = 0XFF;  

    P3DIR = 0XFF;P3OUT = 0XFF;  

    P4DIR = 0XFF;P4OUT = 0XFF;  

    P5DIR = 0XFF;P5OUT = 0XFF;  

    P6DIR = 0XFF;P6OUT = 0XFF;  

    WDTCTL = WDTPW + WDTHOLD;       //與AVR不同,預設看門狗是打開的,是以要先關閉看門狗  

    P6DIR |= BIT2;P6OUT |= BIT2;    //關閉電平轉換,這個是對應開發闆上的電平轉換晶片,與實際功能無關  

    CCTL0 = CCIE;                   //使能CCR0中斷  

    CCR0 = 2047;                    //設定周期0.5S 計算:32768/8/2=2048;使用的是手表晶振                 

    TACTL = TASSEL_1 + ID_3 + MC_1; //定時器A的時鐘源選擇ACLK,增計數模式  

    //在msp430x14x.h已經對相應的寄存器和标志位都做了定義,隻需要進行選擇即可具體檢視頭檔案。  

    //TASSEL_1表示時鐘源選擇ACLK,ID_3表示八分頻,MC_1表示增計數模式  

    P2DIR = 0xff;                   //設定P2口方向為輸出  

    P2OUT = 0xff;  

    _EINT();                        //使能全局中斷  

    LPM3;                           //設定工作模式,使CPU進入LPM3模式,此模式下CPU MCLK SMCLK被禁止 ACLK活動  

}  

/******************************************* 

函數名稱:Timer_A  

功    能:定時器A的中斷服務函數 

參    數:無 

傳回值  :無 

********************************************/  

#pragma vector = TIMERA0_VECTOR  

__interrupt void Timer_A (void)  

    P2OUT ^= 0xff;                  //P2口輸出取反  

本文轉自emouse部落格園部落格,原文連結:http://www.cnblogs.com/emouse/archive/2010/07/20/2198225.html,如需轉載請自行聯系原作者

繼續閱讀