MSP430學習收穫

2021-09-30 16:19:43 字數 1437 閱讀 2444

一、程式中最好不要出現乘和除,影響效率。aiver=sum/16可以換成aiver=sum》4;

二、低功耗就是精煉減少cpu工作時間。靠讓cpu進入休眠來實現。只能用中斷和復位可以喚醒休眠。

三、中斷函式前加上__interruput關鍵字表明是中斷函式式中斷函式(注意是兩個__),

四、#pragmati cvector=***x_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差異和硬體差異。函式命名不變,只要修改函式定義即可。這樣就可以保持上層軟體不變。

/*指令             用途  

#           空指令,無任何效果           #i nclude    包含乙個源**檔案  

#define     定義巨集  

#undef      取消已定義的巨集  

#if         如果給定條件為真,則編譯下面**           #ifdef      如果巨集已經定義,則編譯下面**           #ifndef     如果巨集沒有定義,則編譯下面**  

#elif       如果前面的#if給定條件不為真,當前條件為真,則編譯下面**           #endif      結束乙個#if……#else條件編譯塊           #error      停止編譯並顯示錯誤資訊 

*/為了避免那些只能包含一次的標頭檔案被多次包含,可以在標頭檔案中用編譯時條件來進行控制。例如:

/*my.h*/#ifndefmy_h

#definemy_h……#endif

在程式中包含標頭檔案有兩種格式:

#include

#include"my.h"

第一種方法是用尖括號把頭檔案括起來。這種格式告訴預處理程式在編譯器自帶的或外部庫的標頭檔案中搜尋被包含的標頭檔案。

第二種方法是用雙引號把頭檔案括起來。這種格式告訴預處理程式在當前被編譯的應用程式的源**檔案中搜尋被包含的標頭檔案,如果找不到,再搜尋編譯器自帶的頭文

件。採用兩種不同包含格式的理由在於,編譯器是安裝在公共子目錄下的,而被編譯的應用程式是在它們自己的私有子目錄下的。乙個應用程式既包含編譯器提供的公共頭文

件,也包含自定義的私有標頭檔案。採用兩種不同的包含格式使得編譯器能夠在很多標頭檔案中區別出一組公共的標頭檔案。

MSP430學習筆記(1)

1.首先你要知道msp430的儲存器結構。典型微處理器的結構有兩種 馮。諾依曼結構 程式儲存器和資料儲存器統一編碼 哈佛結構 程式儲存器和資料儲存器 msp430系列微控制器屬於前者,而常用的mcs51系列屬於後者。0 0xf特殊功能暫存器 0x10 0x1ff外圍模組暫存器 0x200 根據不同型...

MSP430學習筆記(二)

bit 0 上公升沿觸發 bit 1 下降沿觸發 注意 當向pxies寫入時,當前的pxin狀態將會影響中斷觸發 pxies pxin pxifg 0 10 觸發0 1 1不觸發 1 00 不觸發1 01觸發 bit 0 中斷不使能 bit 1 中斷使能 bit 0 中斷未發生 bit 1 中斷已發...

msp430鍵盤程式

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