在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            TimerA流水燈問題分析

            作者: 時(shí)間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
            在調(diào)試TimerA OR TimerB上發(fā)了將兩次將近兩天的時(shí)間.在此如不
            做出總結(jié)與糾正,以后可能會(huì)出現(xiàn)同樣的問題.當(dāng)然全不是TimerA
            定時(shí)器設(shè)置問題而是在MSP430基礎(chǔ)方面做得不夠.
            程序如下:
            #include"MSP430x16x.h"
            unsigned char LED;
            void Init_SystemClock(void)
            {
            unsigned char i;
            BCSCTL1=0x00; //XT2OFF XT2 DIVA.1 DIVA.0 XT5V
            RSE.2 RSE.1 RSE.0
            BCSCTL2|=SELM1+SELS; //SSEL1 SSEL0 DIVM.1 DIVM.0 SELS
            DIVS.1 DIVS.0 DOR
            do
            {
            IFG1&=~OFIFG;
            for(i=0xFF;i>0;i--);
            }
            while((IFG1&OFIFG)!=0);
            P5DIR=BIT4+BIT5+BIT6; //MCLK SMCLK ACLK
            P5SEL|=BIT4+BIT5+BIT6; //功能端口輸出
            }
            void Init_Port(void)
            {
            P4DIR=0xFF;
            P4SEL=0x00; //
            return;
            }
            void Init_TimerA(void)
            {
            TACTL=TASSEL0+TACLR;
            TACCTL0=CCIE; //
            TACCR0=32768;
            TACTL|=MC0;
            //TACTL|=TAIE;
            return;
            }
            #pragma vector = TIMERA0_VECTOR
            __interrupt void TimerA_ISR(void)
            {
            LED=((LED==0X80)?0x01LED<<1));
            P4OUT=LED;
            }
            void main(void)
            {
            WDTCTL=WDTPW+WDTHOLD;
            Init_SystemClock();
            Init_Port();
            Init_TimerA();
            _EINT();
            LED=0x80;
            while(1);
            }
            程序下載到MSP430F1611后出現(xiàn)如下情況:
            1:程序編譯通過卻LED不能顯示
            2ED出現(xiàn)后不是按設(shè)定的部位顯示--0X01--而是顯示0X02-
            >0X01...0X80;
            經(jīng)過單步跟蹤發(fā)現(xiàn)for(i=0xFF;i>0;i--);上的問題,
            原定義為:
            unsigned char i;
            for(i=0;i<256;i++);
            i已經(jīng)超值.定義unsigend char i 取值范圍是:0 ~ 255
            最好寫成
            unsigned char i;
            for(i=0xff;i>0;i--);
            寫成:
            unsigned char i;
            for(i=0;i<255;i++); 在觀察窗口發(fā)現(xiàn) i:Error(col1):Unknown
            or ambiguous symbol.i --i的值不能確定(模棱兩可)
            解決情況1 出現(xiàn)情況2.
            原ED=0x01;放在 _EINT(); 前;
            但ED=0x01;放在 _EINT(); 后顯示0X40->0x02>0X01...0X80;
            經(jīng)分析:
            將LED=0X80 放在 _EINT(); 后,顯示正常.
            同時(shí)發(fā)現(xiàn)MSP430各寄存器是采用位操作.
            <位或>是采用:BCSCTL2=SELM1+SELS;
            還是 :BCSCTL2|=SELM1+SELS;
            但結(jié)果還是一樣的.這當(dāng)然要和<位與>區(qū)分了 ^_^


            關(guān)鍵詞: TimerA流水燈問題分

            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉