日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 技術(shù)學(xué)院 > 熱搜器件
[導(dǎo)讀]MSP430的頭文件解析

1、#define   BIT0        (0x0001)      //(0x0001)不是地址,而是一個16進制數(shù)值。
例1、P3DIR |= BIT3;實際上也可以寫成P3DIR |= 0x0008;意思是將P3口的默認上電值0x0000和0x0008相與,設(shè)置P3口的第三位(即P3.3)管腳作輸出使用。
例2、WDTCTL = WDTPW + WDTHOLD;實際上就是WDTCTL=0x5A80;
你可以在頭文件中查到#define WDTPW (0x5A00)和#define WDTHOLD (0x0080)。WDTCTL是看門狗的控制寄存器,在msp430的User'Guide中有說明:當它的值為0x5A80時停止看門狗定時。
那為什么我們不直接寫成WDTCTL=0x5A80;呢?這樣的話程序的可讀性會很差。0x5A80只是一個數(shù)值,當你下次再看你寫的程序,或者別人讀你的程序時,就不明白WDTCTL=0x5A80;的意思了。如果寫成WDTCTL = WDTPW + WDTHOLD;就好理解多了:WDTPW(Watchdog timer password,看門狗的密碼,WDTCTL的高8位):只有WDTCTL的高8位為0x5A時才能對WDTCTL寄存器進行寫操作。
WDTHOLD(Watchdog timer hold,WDTCTL的第7位):當WDTCTL的第7位為1時,停止看門狗計時。這樣我們通過PW,HOLD就可以輕松的知道WDTCTL = WDTPW + WDTHOLD;是做什么的了??梢钥闯鰉sp430的頭文件是很人性化的。
2、當然也有表示地址的,例如,頭文件中有以下部分:
#ifdef __IAR_SYSTEMS_ASM__
#define DEFC(name, address) sfrb name = address
#define DEFW(name, address) sfrw name = address;
///運用了可變參數(shù)宏的宏定義格式:#define    宏符號名(參數(shù)表)    宏體;;宏體中就是寫出參數(shù)表中各個
//參數(shù)之間的關(guān)系。
#endif
……
……
#define P6OUT_ (0x0035)
DEFC(   P6OUT   , P6OUT_)      //這里就是用了以上的可變參數(shù)宏。DEFC(   P6OUT   , P6OUT_) 就表//示:sfrb P6OUT = P6OUT_這里的0x0035就是指P6OUT這個寄存器的地址了。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉