MSP430 大型陣列 上電不啟動

2021-07-25 21:55:20 字數 528 閱讀 5184

現象:程式燒錄板子後,微控制器不啟動,卡死。注釋掉部分位元組陣列後,才能執行。

分析:這是iar編譯的方法,導致看門狗溢位了。msp430微控制器一上電看門狗就已經啟動,但是在進入main()函式之前,軟體會先初始化用到的一些資料,比如陣列。如果數定義的比較大,初始化時間比較長,那就有可能導致看門狗溢位了,微控制器復位,然後重啟,再初始化,再溢位,再復位..程式永遠也進不去主函式。

解決方法:

使用低階初始化函式:int __low_level_init(void)  。該函式會自動把低階初始化函式放在程式的最開始處,在此可以關閉看門狗,等低階初始化函式執行完之後,才會進行資料初始化,最後再進入main()函式。

void main()

int __low_level_init(void)    

也不用呼叫該函式,編譯器自動將其放在最開始處。

當然也可以把所有硬體初始化函式寫進來,這樣在進入main函式之前,把硬體都準備好了,避免了其他bug產生。

__no_init unsigned char  all_25665 =;

msp430鍵盤程式

msp430 按鍵程式 含電路圖及源 include void init port void void delay void int keyprocess void return nres 處理來自埠 1 的中斷 interrupt port1 vector void port isr void i...

MSP430電平轉換

說道到這個電平轉換,寫程式的時候居然還要示波器來觀察現象,表示我們交的是211的學費,上的卻不是211大學,創新實驗室的儀器裝置真的是少的可憐啊,我級不吐槽了說說這個電平轉換的一些知識還有看法吧。看到原理圖首先得說說接線帽的問題,這個很重要,接線帽 的使用會連線到不同的引腳上,大家看原理圖的時候就會...

MSP430學習收穫

一 程式中最好不要出現乘和除,影響效率。aiver sum 16可以換成aiver sum 4 二 低功耗就是精煉減少cpu工作時間。靠讓cpu進入休眠來實現。只能用中斷和復位可以喚醒休眠。三 中斷函式前加上 interruput關鍵字表明是中斷函式式中斷函式 注意是兩個 四 pragmati cv...