新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機C語言程序結(jié)構(gòu)容易出問題的有一下幾點

單片機C語言程序結(jié)構(gòu)容易出問題的有一下幾點

作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
一,定義寄存器

定義全局變量unsigend num

本文引用地址:http://m.butianyuan.cn/article/201612/324286.htm

在子程序里面改變num值,同時在中斷里面也改變num值,最后得到意向不到的值,容易出錯

若要這樣改變則定義變量前面加volatile unsigend num

二,中斷調(diào)用

主程序調(diào)用子程序,同時中斷函數(shù)里面也調(diào)用該子程序,這樣容易出錯

建議:中斷里面不要調(diào)用子程序,

若要調(diào)用子程序則,則該子程序為唯一被中斷調(diào)用。

三,程序開頭沒加延時

開始的時候沒加延時,很危險,上電電源電壓波動較大,若一上電單片機就執(zhí)行重要的命令的話,就容易出問題

特別是對內(nèi)部eeprom的讀寫,讀取數(shù)據(jù)出錯,導(dǎo)致意向不到的后果。讀寫數(shù)據(jù)都需要比較穩(wěn)定的電壓。

親,上電延時個10毫秒,等到電壓穩(wěn)定后,再執(zhí)行命令,不會影響正常工作,又有保障不是更好

四,競爭與冒險

檢測需加多次判斷,以防干擾。

多次判斷需要浪費一點時間,這個時間是在允許的范圍內(nèi)。



關(guān)鍵詞: 單片機C語言程序結(jié)

評論


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

關(guān)閉