MSP430X41X头文件定义.docx
《MSP430X41X头文件定义.docx》由会员分享,可在线阅读,更多相关《MSP430X41X头文件定义.docx(30页珍藏版)》请在冰豆网上搜索。
MSP430X41X头文件定义
MSP430X41X头文件(定义)
/********************************************************************
*
*StandardregisterandbitdefinitionsfortheTexasInstruments
*MSP430microcontroller.
*
*ThisfilesupportsassemblerandCdevelopmentfor
*MSP430x41xdevices.
*
*TexasInstruments,Version2.4
*
*Rev.1.1,Removedleading0toaviodinterpretationasoctal
*valuesunderC
*Includedratherthan"In430.h"
*Rev.1.2,CorrectedLPMx_EXITtoreferencenewintrinsic_BIC_SR_IRQ
*ChangedTAIVtoberead-only
*Rev.1.3,Encloseall#definestatementswithparentheses
*Rev.1.4,Removedincorrectlabel'BTRESET'
*AddedmissinglabelsforFLL
*Rev.2.1,FixeddefinitionofFLL_DIV0andFLL_DIV1
*AlignmentofdefintionsinUsersGuideandofversionnumbers
*Rev.2.11,RemoveddefinitionofLCDLOWR(notavailableat4xxdevices)
*Rev.2.2,RemovedunuseddefofTASSEL2
*Rev.2.3,RemoveddefinitionsforBTRESET
*Rev.2.4,addeddefinitionsforInterruptVectorsxxIV
*
********************************************************************/
#ifndef__msp430x41x
#define__msp430x41x
#ifdef__IAR_SYSTEMS_ICC__
#ifndef_SYSTEM_BUILD
#pragmasystem_include
#endif
#endif
#if(((__TID__>>8)&0x7F)!
=0x2b)/*0x2b=43dec*/
#errormsp430x41x.hfileforusewithICC430/A430only
#endif
#ifdef__IAR_SYSTEMS_ICC__
#include
#pragmalanguage=extended
#defineDEFC(name,address)__no_initvolatileunsignedcharname@address;
#defineDEFW(name,address)__no_initvolatileunsignedshortname@address;
#defineDEFXCvolatileunsignedchar
#defineDEFXWvolatileunsignedshort
#endif/*__IAR_SYSTEMS_ICC__*/
#ifdef__IAR_SYSTEMS_ASM__
#defineDEFC(name,address)sfrbname=address;
#defineDEFW(name,address)sfrwname=address;
#endif/*__IAR_SYSTEMS_ASM__*/
#ifdef__cplusplus
#defineREAD_ONLY
#else
#defineREAD_ONLYconst
#endif
/************************************************************
*STANDARDBITS
************************************************************/
#defineBIT0(0x0001)
#defineBIT1(0x0002)
#defineBIT2(0x0004)
#defineBIT3(0x0008)
#defineBIT4(0x0010)
#defineBIT5(0x0020)
#defineBIT6(0x0040)
#defineBIT7(0x0080)
#defineBIT8(0x0100)
#defineBIT9(0x0200)
#defineBITA(0x0400)
#defineBITB(0x0800)
#defineBITC(0x1000)
#defineBITD(0x2000)
#defineBITE(0x4000)
#defineBITF(0x8000)
/************************************************************
*STATUSREGISTERBITS
************************************************************/
#defineC(0x0001)
#defineZ(0x0002)
#defineN(0x0004)
#defineV(0x0100)
#defineGIE(0x0008)
#defineCPUOFF(0x0010)
#defineOSCOFF(0x0020)
#defineSCG0(0x0040)
#defineSCG1(0x0080)
/*LowPowerModescodedwithBits4-7inSR*/
#ifndef__IAR_SYSTEMS_ICC/*Begin#definesforassembler*/
#defineLPM0(CPUOFF)
#defineLPM1(SCG0+CPUOFF)
#defineLPM2(SCG1+CPUOFF)
#defineLPM3(SCG1+SCG0+CPUOFF)
#defineLPM4(SCG1+SCG0+OSCOFF+CPUOFF)
/*End#definesforassembler*/
#else/*Begin#definesforC*/
#defineLPM0_bits(CPUOFF)
#defineLPM1_bits(SCG0+CPUOFF)
#defineLPM2_bits(SCG1+CPUOFF)
#defineLPM3_bits(SCG1+SCG0+CPUOFF)
#defineLPM4_bits(SCG1+SCG0+OSCOFF+CPUOFF)
#include
#defineLPM0_BIS_SR(LPM0_bits)/*EnterLowPowerMode0*/
#defineLPM0_EXIT_BIC_SR_IRQ(LPM0_bits)/*ExitLowPowerMode0*/
#defineLPM1_BIS_SR(LPM1_bits)/*EnterLowPowerMode1*/
#defineLPM1_EXIT_BIC_SR_IRQ(LPM1_bits)/*ExitLowPowerMode1*/
#defineLPM2_BIS_SR(LPM2_bits)/*EnterLowPowerMode2*/
#defineLPM2_EXIT_BIC_SR_IRQ(LPM2_bits)/*ExitLowPowerMode2*/
#defineLPM3_BIS_SR(LPM3_bits)/*EnterLowPowerMode3*/
#defineLPM3_EXIT_BIC_SR_IRQ(LPM3_bits)/*ExitLowPowerMode3*/
#defineLPM4_BIS_SR(LPM4_bits)/*EnterLowPowerMode4*/
#defineLPM4_EXIT_BIC_SR_IRQ(LPM4_bits)/*ExitLowPowerMode4*/
#endif/*End#definesforC*/
/************************************************************
*PERIPHERALFILEMAP
************************************************************/
/************************************************************
*SPECIALFUNCTIONREGISTERADDRESSES+CONTROLBITS
************************************************************/
#defineIE1_(0x0000)/*InterruptEnable1*/
DEFC(IE1,IE1_)
#defineWDTIE(0x01)
#defineOFIE(0x02)
#defineNMIIE(0x10)
#defineACCVIE(0x20)
#defineIFG1_(0x0002)/*InterruptFlag1*/
DEFC(IFG1,IFG1_)
#defineWDTIFG(0x01)
#defineOFIFG(0x02)
#defineNMIIFG(0x10)
#defineIE2_(0x0001)/*InterruptEnable2*/
DEFC(IE2,IE2_)
#defineBTIE(0x80)
#defineIFG2_(0x0003)/*InterruptFlag2*/
DEFC(IFG2,IFG2_)
#defineBTIFG(0x80)
/************************************************************
*WATCHDOGTIMER
************************************************************/
#define__MSP430_HAS_WDT__/*DefinitiontoshowthatModuleisavailable*/
#defineWDTCTL_(0x0120)/*WatchdogTimerControl*/
DEFW(WDTCTL,WDTCTL_)
/*Thebitnameshavebeenprefixedwith"WDT"*/
#defineWDTIS0(0x0001)
#defineWDTIS1(0x0002)
#defineWDTSSEL(0x0004)
#defineWDTCNTCL(0x0008)
#defineWDTTMSEL(0x0010)
#defineWDTNMI(0x0020)
#defineWDTNMIES(0x0040)
#defineWDTHOLD(0x0080)
#defineWDTPW(0x5A00)
/*WDT-intervaltimes[1ms]codedwithBits0-2*/
/*WDTisclockedbyfSMCLK(assumed1MHz)*/
#defineWDT_MDLY_32(WDTPW+WDTTMSEL+WDTCNTCL)/*32msinterval(default)*/
#defineWDT_MDLY_8(WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0)/*8ms"*/
#defineWDT_MDLY_0_5(WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1)/*0.5ms"*/
#defineWDT_MDLY_0_064(WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0)/*0.064ms"*/
/*WDTisclockedbyfACLK(assumed32KHz)*/
#defineWDT_ADLY_1000(WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL)/*1000ms"*/
#defineWDT_ADLY_250(WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0)/*250ms"*/
#defineWDT_ADLY_16(WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1)/*16ms"*/
#defineWDT_ADLY_1_9(WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0)/*1.9ms"*/
/*Watchdogmode->resetafterexpiredtime*/
/*WDTisclockedbyfSMCLK(assumed1MHz)*/
#defineWDT_MRST_32(WDTPW+WDTCNTCL)/*32msinterval(default)*/
#defineWDT_MRST_8(WDTPW+WDTCNTCL+WDTIS0)/*8ms"*/
#defineWDT_MRST_0_5(WDTPW+WDTCNTCL+WDTIS1)/*0.5ms"*/
#defineWDT_MRST_0_064(WDTPW+WDTCNTCL+WDTIS1+WDTIS0)/*0.064ms"*/
/*WDTisclockedbyfACLK(assumed32KHz)*/
#defineWDT_ARST_1000(WDTPW+WDTCNTCL+WDTSSEL)/*1000ms"*/
#defineWDT_ARST_250(WDTPW+WDTCNTCL+WDTSSEL+WDTIS0)/*250ms"*/
#defineWDT_ARST_16(WDTPW+WDTCNTCL+WDTSSEL+WDTIS1)/*16ms"*/
#defineWDT_ARST_1_9(WDTPW+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0)/*1.9ms"*/
/*INTERRUPTCONTROL*/
/*ThesetwobitsaredefinedintheSpecialFunctionRegisters*/
/*#defineWDTIE0x01*/
/*#defineWDTIFG0x01*/
/************************************************************
*DIGITALI/OPort1/2
************************************************************/
#define__MSP430_HAS_PORT1__/*DefinitiontoshowthatModuleisavailable*/
#define__MSP430_HAS_PORT2__/*DefinitiontoshowthatModuleisavailable*/
#defineP1IN_(0x0020)/*Port1Input*/
READ_ONLYDEFC(P1IN,P1IN_)
#defineP1OUT_(0x0021)/*Port1Output*/
DEFC(P1OUT,P1OUT_)
#defineP1DIR_(0x0022)/*Port1Direction*/
DEFC(P1DIR,P1DIR_)
#defineP1IFG_(0x0023)/*Port1InterruptFlag*/
DEFC(P1IFG,P1IFG_)
#defineP1IES_(0x0024)/*Port1InterruptEdgeSelect*/
DEFC(P1IES,P1IES_)
#defineP1IE_(0x0025)/*Port1InterruptEnable*/
DEFC(P1IE,P1IE_)
#defineP1SEL_(0x0026)/*Port1Selection*/
DEFC(P1SEL,P1SEL_)
#defineP2IN_(0x0028)/*Port2Input*/
READ_ONLYDEFC(P2IN,P2IN_)
#defineP2OUT_(0x0029)/*Port2Output*/
DEFC(P2OUT,P2OUT_)
#defineP2DIR_(0x002A)/*Port2Direction*/
DEFC(P2DIR,P2DIR_)
#defineP2IFG_(0x002B)/*Port2InterruptFlag*/
DEFC(P2IFG,P2IFG_)
#defineP2IES_(0x002C)/*Port2InterruptEdgeSelect*/
DEFC(P2IES,P2IES_)
#defineP2IE_(0x002D)/*Port2InterruptEnable*/
DEFC(P2IE,P2IE_)
#defineP2SEL_(0x002E)/*Port2Selection*/
DEFC(P2SEL,P2SEL_)
/************************************************************
*DIGITALI/OPort3/4
************************************************************/
#define__MSP430_HAS_PORT3__/*DefinitiontoshowthatModuleisavailable*/
#define__MSP430_HAS_PORT4__/*DefinitiontoshowthatModuleisavailable*/
#defineP3IN_(0x0018)/*Port3Input*/
READ_ONLYDEFC(P3IN,P3IN_)
#defineP3OUT_(0x0019)/*Port3Output*/
DEFC(P3OUT,P3OUT_)
#defineP3DIR_(0x001A)/*Port3Direction*/
DEFC(P3DIR,P3DIR_)
#defineP3SEL_(0x001B)/*Port3Selection*/
DEFC(P3SEL,P3SEL_)
#defineP4IN_(0x001C)/*Port4Input*/
READ_ONLYDEFC(P4IN,P4IN_)
#defineP4OUT_(0x001D)/*Port4Output*/
DEFC(P4OUT,P4OUT_)
#defineP4DIR_(0x001E)/*Port4Direction*/
DEFC(P4DIR,P4DIR_)
#defineP4SEL_(0x001F)/*Port4Selection*/
DEFC(P4SEL,P4SEL_)
/************************************************************
*DIGITALI/OPort5/6
************************************************************/
#define__MSP430_HAS_PORT5__/*DefinitiontoshowthatModuleisavailable*/
#define__MSP430_HAS_PORT6__/*DefinitiontoshowthatModuleisavailable*/
#defineP5IN_(0x0030)/*Port5Input*/
READ_ONLYDEFC(P5IN,P5IN_)
#defineP5OUT_(0x0031)/*Port5Output*/
DEFC(P5OUT,P5OUT_)
#defineP5DIR_(0x0032)/*Port5Direction*/
DEFC(P5DIR,P5DIR_)
#defineP5SEL_(0x0033)/*Port5Selection*/
DEFC(P5SEL,P5SEL_)
#defineP6IN_(0x0034)/*Port6Input*/
READ_ONLYDEFC(P6IN,P6IN_)
#defineP6OUT_(0x0035)/*Port6Output*/
DEFC(P6OUT,P6OUT_)
#defineP6DIR_(0x0036)/*Port6Direction*/
DEFC(P6DIR,P6DIR