在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > msp430程序跑飛原因和解決方式積累

            msp430程序跑飛原因和解決方式積累

            作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò) 收藏
            1.中斷或主函數(shù)中有死循環(huán),現(xiàn)象是程序停在某處。

            2.堆棧溢出?,F(xiàn)象是程序跑飛。
            **************************************************************************************************

            本文引用地址:http://www.biyoush.com/article/201611/321226.htm

            3、是否開(kāi)了中斷但是沒(méi)有用。如:

            開(kāi)了中斷:

            TA0CCTL0 = CCIE; // CCR0 interrupt enabled
            TA0CCTL1 = CCIE; // CCR1 interrupt enabled//時(shí)間周期1使能
            TA0CCTL2 = CCIE; // CCR2 interrupt enabled//時(shí)間周期2使能
            TA0CCTL3= CCIE; // CCR3 interrupt enabled//時(shí)間周期3使能

            但是:

            定時(shí)器中:

            case 4: TA0CCTL2 = CCIE;)和 case 6: TA0CCTL3= CCIE;)內(nèi)沒(méi)有處理的程序。

            ……
            case 2:
            TA0CCR1 +=1024; // Add Offset to CCR2
            SecondReach=1;
            CountToMunite++;
            Rquestinterval++;
            SecondTimecount++;
            break; // CCR4 not used
            case 4:
            break;
            case 6:
            break;
            case 8:
            break; // CCR3 not used
            ……

            4、數(shù)組越界。定義的數(shù)組只有50個(gè)單元,但是程序運(yùn)行的過(guò)程中,卻給他賦給50+個(gè)單元。

            解決辦法:
            A.看中斷有沒(méi)有用 _EINT(),引起中斷嵌套.
            B.Project--Options--General Options---Stack/Heap 將Stack size設(shè)置大一些。 (堆棧溢出)
            3.中斷耗時(shí)太長(zhǎng),剛出中斷又進(jìn)去了.這時(shí)的現(xiàn)象是程序一直在中斷中執(zhí)行,回不到主函數(shù)。 (中斷嵌套)
            4.檢查CPU的電源是不是穩(wěn)定,msp430在要保證程序正常運(yùn)行,需保證Vcc大于1.8V。當(dāng)電壓低至0.8V時(shí),程序仍有可能執(zhí)行。這時(shí)的現(xiàn)象是PC指針亂飛,有復(fù)位,死機(jī),停在中斷,時(shí)鐘頻率發(fā)生變化等現(xiàn)象。
            5.程序編譯沒(méi)問(wèn)題,下載程序后上電不斷復(fù)位,該問(wèn)題是由于WDT造成的(RAM的初始化時(shí)間大于WDT默認(rèn)的32MS時(shí)間,因此MSP復(fù)位)根本原因是初始化的時(shí)間過(guò)長(zhǎng),超過(guò)了看門(mén)狗的時(shí)間,初始化完成以后才能進(jìn)入main函數(shù),這時(shí)關(guān)狗已經(jīng)來(lái)不及了。
            解決的辦法:
            A 對(duì)你的數(shù)組用 __no init_定義,上電編譯器不產(chǎn)生特殊的附加函數(shù)去初始化RAM.
            B 在Project--Options--Linker--Config中選擇 Override default programe,并將Entry lib 設(shè)置成 __program_start這時(shí)要修改Cstartup.S43(記得把它加入復(fù)制到工程而不是修改系統(tǒng)的),在第一條指令前加入關(guān)狗的指令,在main函數(shù)里再開(kāi)(如果需要的話(huà))。
            如果用匯編,則沒(méi)有這個(gè)問(wèn)題

            http://topic.csdn.net/u/20100730/09/45f212a1-0354-4b73-ad62-335b5955c0f2.html

            **************************************************************************************************

            6、把無(wú)用的中斷允許關(guān)掉。



            關(guān)鍵詞: msp430程序跑

            評(píng)論


            技術(shù)專(zhuān)區(qū)

            關(guān)閉