一、程序中最好不要出現乘和除,影響效率。Aiver=Sum/16可以換成Aiver=Sum》》4;
二、低功耗就是精煉減少CPU工作時間。靠讓CPU進入休眠來實現。只能用中斷和復位可以喚醒休眠。
三、中斷函數前加上__interruput關鍵字表明是中斷函數式中斷函數(注意是兩個__),
四、#pragmati cvector=XXXX_VECTOR表明中斷源。
五、代碼優化問題,在時間和空間上找一個最好切合點,可以在Option—》Compiler->Optimzation-》C/C++選擇優化級取向。Size or Speed
建議在調試時用LOW,在發佈時用High.
六、函數命名採用模塊名_功能名的方式。如; LCD_Init();
七、註釋的時候對一個整體框架實現功能註釋,還有關鍵語句註釋即可。
八、用宏定義可以消除一些CPU的差異,如MSP430沒有位操作,51有位操作。可以用
(MSP430) #defin LED_ON P2OUT |=BIT0;等價於(C51)#defin LED_ON=0;
九、用函數也可以消除CPU差異和硬件差異。函數命名不變,只要修改函數定義即可。這樣就可以保持上層軟件不變。
十、用Config.h的條件編譯宏的方法來實現版本的管理。(參考網絡文章《C條件編譯和宏定義》)
/*指令 用途
# 空指令,無任何效果 #i nclude 包含一個源代碼文件
#define 定義宏
#undef 取消已定義的宏
#if 如果給定條件爲真,則編譯下面代碼 #ifdef 如果宏已經定義,則編譯下面代碼 #ifndef 如果宏沒有定義,則編譯下面代碼
#elif 如果前面的#if給定條件不爲真,當前條件爲真,則編譯下面代碼 #endif 結束一個#if……#else條件編譯塊 #error 停止編譯並顯示錯誤信息
*/
爲了避免那些只能包含一次的頭文件被多次包含,可以在頭文件中用編譯時條件來進行控制。例如:
/*my.h*/#ifndefMY_H
#defineMY_H……#endif
在程序中包含頭文件有兩種格式:
#include<my.h>
#include"my.h"
第一種方法是用尖括號把頭文件括起來。這種格式告訴預處理程序在編譯器自帶的或外部庫的頭文件中搜索被包含的頭文件。
第二種方法是用雙引號把頭文件括起來。這種格式告訴預處理程序在當前被編譯的應用程序的源代碼文件中搜索被包含的頭文件,如果找不到,再搜索編譯器自帶的頭文
件。
採用兩種不同包含格式的理由在於,編譯器是安裝在公共子目錄下的,而被編譯的應用程序是在它們自己的私有子目錄下的。一個應用程序既包含編譯器提供的公共頭文
件,也包含自定義的私有頭文件。採用兩種不同的包含格式使得編譯器能夠在很多頭文件中區別出一組公共的頭文件。