新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430F149單片機的內部定時器A定時1秒鐘實現LED閃爍

        MSP430F149單片機的內部定時器A定時1秒鐘實現LED閃爍

        作者: 時間:2016-11-27 來源:網絡 收藏
        #include "msp430x14x.h"
        //********************函數聲明******************
        void InitClock();
        //********************主函數********************
        void main(void)
        {
        WDTCTL = WDTPW + WDTHOLD; // 關看門狗
        InitClock(); // 初始化時鐘
        P1DIR |= BIT0; // 設P1.0為輸出
        CCTL0 = CCIE; // 使能CCR0中斷
        CCR0 = 500;
        TACTL = TASSEL_2 + MC_1; // 子系統時鐘, 增計數模
        _BIS_SR(LPM0_bits + GIE); // 低功耗模式0/ 開總中斷
        }
        //*******************************************
        函數名稱:InitClock
        能:初始化時鐘函數
        數:無
        返回值 :無
        //********************************************
        void InitClock()
        {
        unsigned int oscdly;
        BCSCTL1 &= ~XT2OFF; //清OSCOFF/XT2,使XT2振蕩器有效
        do
        {
        IFG1 &=~OFIFG; //清OFIFG
        oscdly=255;
        while(oscdly--); //延時等待
        }
        while(IFG1 & OFIFG); //直到OFIFG=0為止
        DCOCTL |= DCO0 + DCO1 + DCO2; // Max DCO
        BCSCTL1 |= RSEL0 + RSEL1 + RSEL2; // XT2on, max RSEL
        //這兩句設置DCOCTL和BCSCTL1,設置DCO的頻率
        //一般來說,PUC復位之后,如果沒有特定設置系統時鐘MCLK,MCU將默
        //認DCO振蕩器產生的頻率為系統時鐘,不過如果設置BCSCTL2來選定
        //MCLK的時鐘源的話(如:BCSCTL2 |= SELM_2+SELS;)系統時鐘就是由
        //XT2振蕩而來.
        //-------------------------------------------------------------
        BCSCTL2 |= SELM_2+SELS; //SMCLK and MCLK uses XT2
        //這一句設置BCSCTL2,選定MCLK和SMCLK的時鐘源
        //注意:ACLK只能來源于LFXT1.可以在BCSCTL1里設置ACLK的分頻。
        //-------------------------------------------------------------
        }
        //*******************************************
        函數名稱:Timer_A
        能:定時器A中斷服務子函數
        數:無
        返回值 :無
        //********************************************
        #pragma vector=TIMERA0_VECTOR
        __interrupt void Timer_A (void)
        {
        P1OUT ^= BIT0; // 取反P1.0
        }


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 枝江市| 横山县| 平原县| 西吉县| 庄浪县| 仁寿县| 凤阳县| 韶关市| 芮城县| 勐海县| 汾西县| 铅山县| 松潘县| 台东市| 黄大仙区| 潮安县| 商丘市| 屏山县| 张家界市| 连州市| 湖口县| 泗阳县| 宣化县| 民勤县| 特克斯县| 黄平县| 尤溪县| 邛崃市| 本溪市| 新晃| 如皋市| 和硕县| 灌云县| 孝感市| 嘉峪关市| 二连浩特市| 甘泉县| 阿拉善左旗| 丰都县| 锡林郭勒盟| 安福县|