MSP430程序設(shè)計(jì)
DEFC(
me1關(guān)聯(lián)端口0x0004
defc的c是字節(jié)的意思,也就是me1 就是地址0004處的一個(gè)字節(jié)
2、#define
DEFW(
其功能是從指定地址開始,定義若干個(gè)16位數(shù)據(jù) |
使用處理器專用擴(kuò)展的保持可可移植性的
一、新增數(shù)據(jù)類型:
1、外圍模塊變量Sfrb、Sfrw也稱作特殊功能寄存器變量,直接位于內(nèi)部RAM單元。
例如:
Sfrb P1IES = 0X24H;
Sfrb P1DIR = 0X22H;
Sfrw ADC12CTL1 = 0X01A2H
經(jīng)過定義后就可以直接通過對(duì)應(yīng)的符號(hào)訪問這些寄存器了。
PIDIR = 0X01;P1.0輸出
2、指針變量
3、枚舉類型
二、中斷函數(shù)定義
#pragma vector = 中斷矢量變量
其中
例如:
#pragma vector = WDT_VECTOR()
_interrupt void watchdog_timer(void)
{
}
四、提高IAR C430 代碼的效率
1、僅在保存數(shù)據(jù)存儲(chǔ)器空間的時(shí)候才使用位域
2、盡可能使用無符號(hào)類型,unsigned類型
3、對(duì)16位數(shù)據(jù)類型MSP430的工作效率更高,通常8位數(shù)據(jù)類型的使用可節(jié)省數(shù)據(jù)空間,但是不減少代碼大小,不支持32數(shù)據(jù)類型。
4、復(fù)制struct 和union是耗費(fèi)較大的操作,應(yīng)避免運(yùn)行時(shí)struct/union的賦值,帶struct/union參數(shù)的函數(shù)以及返回struct/union的函數(shù),應(yīng)盡量采取指向struct/union的指針操作。
五、IAR 頭文件,用戶程序通過頭文件訪問庫定義,頭文件使用#include偽指令與之相結(jié)合,為了避免浪費(fèi)編譯時(shí)間,定義被劃分到許多不同的頭部定義,每一個(gè)文件覆蓋特定的函數(shù)區(qū)域,用戶可以根據(jù)使用的內(nèi)容選擇不同的頭文件。
IAR調(diào)試環(huán)境提供了MSP430單片機(jī)各系列的標(biāo)準(zhǔn)頭文件,定義了系列中包含的寄存器的物理地址,在程序中可以字節(jié)使用寄存器名或者寄存器中位的名稱,這樣就避免使用實(shí)際的物理地址,使程序設(shè)計(jì)簡(jiǎn)介、高效。
六、IAR C430 的匯編語言接口
IAR C430 編譯器可以把編譯好的c語言模塊與匯編語言模塊鏈接起來,這對(duì)于要求代碼效率較高的場(chǎng)合尤為重要。
通常用匯編語言來寫子程序,并由C語言主函數(shù)調(diào)用
1、調(diào)用規(guī)則:
2、堆棧結(jié)構(gòu)和參數(shù)傳遞
3、從c程序傳遞參數(shù)
評(píng)論