⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 430f149-

📁 这是一个对msp430头文件的详细解释
💻
📖 第 1 页 / 共 4 页
字号:

#ifndef __msp430x14x
#define __msp430x14x

/************************************************************
* STANDARD BITS
************************************************************/

#define BIT0                0x0001
#define BIT1                0x0002
#define BIT2                0x0004
#define BIT3                0x0008
#define BIT4                0x0010
#define BIT5                0x0020
#define BIT6                0x0040
#define BIT7                0x0080
#define BIT8                0x0100
#define BIT9                0x0200
#define BITA                0x0400
#define BITB                0x0800
#define BITC                0x1000
#define BITD                0x2000
#define BITE                0x4000
#define BITF                0x8000

/************************************************************
* STATUS REGISTER BITS
************************************************************/

#define C                   0x0001
#define Z                   0x0002
#define N                   0x0004
#define V                   0x0100
#define GIE                 0x0008
#define CPUOFF              0x0010
#define OSCOFF              0x0020
#define SCG0                0x0040
#define SCG1                0x0080

/* Low Power Modes coded with Bits 4-7 in SR */

#ifndef __IAR_SYSTEMS_ICC /* Begin #defines for assembler */
#define LPM0                CPUOFF
#define LPM1                SCG0+CPUOFF
#define LPM2                SCG1+CPUOFF
#define LPM3                SCG1+SCG0+CPUOFF
#define LPM4                SCG1+SCG0+OSCOFF+CPUOFF
/* End #defines for assembler */

#else /* Begin #defines for C */
#define LPM0_bits           CPUOFF
#define LPM1_bits           SCG0+CPUOFF
#define LPM2_bits           SCG1+CPUOFF
#define LPM3_bits           SCG1+SCG0+CPUOFF
#define LPM4_bits           SCG1+SCG0+OSCOFF+CPUOFF

#include <In430.h>

#define LPM0      _BIS_SR(LPM0_bits) /* Enter Low Power Mode 0 */
#define LPM0_EXIT _BIC_SR(LPM0_bits) /* Exit Low Power Mode 0 */
#define LPM1      _BIS_SR(LPM1_bits) /* Enter Low Power Mode 1 */
#define LPM1_EXIT _BIC_SR(LPM1_bits) /* Exit Low Power Mode 1 */
#define LPM2      _BIS_SR(LPM2_bits) /* Enter Low Power Mode 2 */
#define LPM2_EXIT _BIC_SR(LPM2_bits) /* Exit Low Power Mode 2 */
#define LPM3      _BIS_SR(LPM3_bits) /* Enter Low Power Mode 3 */
#define LPM3_EXIT _BIC_SR(LPM3_bits) /* Exit Low Power Mode 3 */
#define LPM4      _BIS_SR(LPM4_bits) /* Enter Low Power Mode 4 */
#define LPM4_EXIT _BIC_SR(LPM4_bits) /* Exit Low Power Mode 4 */
#endif /* End #defines for C */

/************************************************************
* PERIPHERAL FILE MAP
************************************************************/

/************************************************************
* 特殊功能寄存器地址和控制位
************************************************************/
/*中断使能1*/
#define IE1_                0x0000  
sfrb    IE1               = IE1_;
#define WDTIE               0x01     /*看门狗中断使能*/       
#define OFIE                0x02     /*外部晶振故障中断使能*/ 
#define NMIIE               0x10     /*非屏蔽中断使能*/
#define ACCVIE              0x20     /*可屏蔽中断使能/flash写中断错误*/
#define URXIE0              0x40     /*串口0接收中断使能*/
#define UTXIE0              0x80     /*串口0发送中断使能*/
/*中断标志1*/
#define IFG1_               0x0002  
sfrb    IFG1              = IFG1_; 
#define WDTIFG              0x01     /*看门狗中断标志*/
#define OFIFG               0x02     /*外部晶振故障中断标志*/
#define NMIIFG              0x10     /*非屏蔽中断标志*/
#define URXIFG0             0x40     /*串口0接收中断标志*/
#define UTXIFG0             0x80     /*串口0发送中断标志*/
 /* 中断模式使能1 */
#define ME1_                0x0004 
sfrb    ME1               = ME1_;
#define URXE0               0x40        /* 串口0接收中断模式使能 */
#define USPIE0              0x40        /* 同步中断模式使能 */
#define UTXE0               0x80        /* 串口0发送中断模式使能 */
/* 中断使能2 */
#define IE2_                0x0001  
sfrb    IE2               = IE2_;
#define URXIE1              0x10       /* 串口1接收中断使能 */
#define UTXIE1              0x20       /* 串口1发送中断使能 */
/* 中断标志2 */
#define IFG2_               0x0003  
sfrb    IFG2              = IFG2_;
#define URXIFG1             0x10         /* 串口1接收中断标志 */
#define UTXIFG1             0x20         /* 串口1发送中断标志 */
/* 中断模式使能2 */
#define ME2_                0x0005  
sfrb    ME2               = ME2_;
#define URXE1               0x10         /* 串口1接收中断模式使能 */
#define USPIE1              0x10         /* 同步中断模式使能 */
#define UTXE1               0x20         /* 串口1发送中断模式使能 */

/************************************************************
*           看门狗定时器的寄存器定义
************************************************************/

#define WDTCTL_             0x0120 
sfrw    WDTCTL            = WDTCTL_;
#define WDTIS0              0x0001          /*选择WDTCNT的四个输出端之一*/
#define WDTIS1              0x0002          /*选择WDTCNT的四个输出端之一*/
#define WDTSSEL             0x0004          /*选择WDTCNT的时钟源*/
#define WDTCNTCL            0x0008          /*清除WDTCNT端: 为1时 从0开始计数*/   
#define WDTTMSEL            0x0010          /*选择模式  0: 看门狗模式; 1: 定时器模式*/ 
#define WDTNMI              0x0020          /*选择NMI/RST 引脚功能 0:为 RST; 1:为NMI*/
#define WDTNMIES            0x0040          /*WDTNMI=1时.选择触发延 0:为上升延 1:为下降延*/ 
#define WDTHOLD             0x0080          /*停止看门狗定时器工作 0:启动;1:停止*/

#define WDTPW               0x5A00          /* 写密码:高八位*/ 


/* SMCLK= 1MHz定时器模式 */
#define WDT_MDLY_32         WDTPW+WDTTMSEL+WDTCNTCL                         /* TSMCLK*2POWER15=32ms 复位状态 */
#define WDT_MDLY_8          WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0                  /* TSMCLK*2POWER13=8.192ms     " */
#define WDT_MDLY_0_5        WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1                  /* TSMCLK*2POWER9=0.512ms   " */
#define WDT_MDLY_0_064      WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0           /* TSMCLK*2POWER6=0.512ms " */
/* ACLK=32.768KHz 定时器模式*/
#define WDT_ADLY_1000       WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL                 /* TACLK*2POWER15=1000ms  " */
#define WDT_ADLY_250        WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0          /* TACLK*2POWER13=250ms   " */
#define WDT_ADLY_16         WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1          /* TACLK*2POWER9=16ms    " */
#define WDT_ADLY_1_9        WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0   /* TACLK*2POWER6=1.9ms   " */
/* SMCLK=1MHz看门狗模式 */
#define WDT_MRST_32         WDTPW+WDTCNTCL                                  /* TSMCLK*2POWER15=32ms 复位状态  */
#define WDT_MRST_8          WDTPW+WDTCNTCL+WDTIS0                           /* TSMCLK*2POWER13=8.192ms   " */
#define WDT_MRST_0_5        WDTPW+WDTCNTCL+WDTIS1                           /* TSMCLK*2POWER9=0.512ms  " */
#define WDT_MRST_0_064      WDTPW+WDTCNTCL+WDTIS1+WDTIS0                    /* TSMCLK*2POWER6=0.512ms " */
/* ACLK=32KHz看门狗模式 */
#define WDT_ARST_1000       WDTPW+WDTCNTCL+WDTSSEL                          /* TACLK*2POWER15=1000ms  " */
#define WDT_ARST_250        WDTPW+WDTCNTCL+WDTSSEL+WDTIS0                   /* TACLK*2POWER13=250ms   " */
#define WDT_ARST_16         WDTPW+WDTCNTCL+WDTSSEL+WDTIS1                   /* TACLK*2POWER9=16ms    " */
#define WDT_ARST_1_9        WDTPW+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0            /* TACLK*2POWER6=1.9ms   " */



/************************************************************
             硬件乘法器的寄存器定义
************************************************************/

#define MPY_                0x0130  /* 无符号乘法 */
sfrw    MPY               = MPY_;
#define MPYS_               0x0132  /* 有符号乘法*/
sfrw    MPYS              = MPYS_;
#define MAC_                0x0134  /* 无符号乘加 */
sfrw    MAC               = MAC_;
#define MACS_               0x0136  /* 有符号乘加 */
sfrw    MACS              = MACS_;
#define OP2_                0x0138  /* 第二乘数 */
sfrw    OP2               = OP2_;
#define RESLO_              0x013A  /* 低6位结果寄存器 */
sfrw    RESLO             = RESLO_;
#define RESHI_              0x013C  /* 高6位结果寄存器 */
sfrw    RESHI             = RESHI_;
#define SUMEXT_             0x013E  /*结果扩展寄存器  */
const sfrw SUMEXT         = SUMEXT_;

/************************************************************
* DIGITAL I/O Port1/2 寄存器定义 有中断功能
************************************************************/

#define P1IN_               0x0020  /* P1 输入寄存器 */
const sfrb P1IN           = P1IN_;
#define P1OUT_              0x0021  /* P1 输出寄存器 */
sfrb    P1OUT             = P1OUT_;
#define P1DIR_              0x0022  /* P1 方向选择寄存器 */
sfrb    P1DIR             = P1DIR_;
#define P1IFG_              0x0023  /* P1 中断标志寄存器*/
sfrb    P1IFG             = P1IFG_;
#define P1IES_              0x0024  /* P1 中断边沿选择寄存器*/
sfrb    P1IES             = P1IES_;
#define P1IE_               0x0025  /* P1 中断使能寄存器 */
sfrb    P1IE              = P1IE_;
#define P1SEL_              0x0026  /* P1 功能选择寄存器*/
sfrb    P1SEL             = P1SEL_;

#define P2IN_               0x0028  /* P2 输入寄存器 */
const sfrb P2IN           = P2IN_;
#define P2OUT_              0x0029  /* P2 输出寄存器  */
sfrb    P2OUT             = P2OUT_;
#define P2DIR_              0x002A  /* P2 方向选择寄存器  */
sfrb    P2DIR             = P2DIR_;
#define P2IFG_              0x002B  /* P2 中断标志寄存器 */
sfrb    P2IFG             = P2IFG_;
#define P2IES_              0x002C  /* P2 中断边沿选择寄存器 */
sfrb    P2IES             = P2IES_;
#define P2IE_               0x002D  /* P2 中断使能寄存器 */
sfrb    P2IE              = P2IE_;
#define P2SEL_              0x002E  /* P2 功能选择寄存器 */
sfrb    P2SEL             = P2SEL_;

/************************************************************
* DIGITAL I/O Port3/4寄存器定义 无中断功能
************************************************************/

#define P3IN_               0x0018  /* P3 输入寄存器 */
const sfrb P3IN           = P3IN_;
#define P3OUT_              0x0019  /* P3 输出寄存器 */
sfrb    P3OUT             = P3OUT_;
#define P3DIR_              0x001A  /* P3 方向选择寄存器 */
sfrb    P3DIR             = P3DIR_;
#define P3SEL_              0x001B  /* P3 功能选择寄存器*/
sfrb    P3SEL             = P3SEL_;

#define P4IN_               0x001C  /* P4 输入寄存器 */
const sfrb P4IN           = P4IN_;
#define P4OUT_              0x001D  /* P4 输出寄存器 */
sfrb    P4OUT             = P4OUT_;
#define P4DIR_              0x001E  /* P4 方向选择寄存器 */
sfrb    P4DIR             = P4DIR_;
#define P4SEL_              0x001F  /* P4 功能选择寄存器 */
sfrb    P4SEL             = P4SEL_;

/************************************************************
* DIGITAL I/O Port5/6       I/O口寄存器定义PORT5和6  无中断功能

************************************************************/

#define P5IN_               0x0030  /* P5 输入寄存器 */
const sfrb P5IN           = P5IN_;
#define P5OUT_              0x0031  /* P5 输出寄存器*/
sfrb    P5OUT             = P5OUT_;
#define P5DIR_              0x0032  /* P5 方向选择寄存器*/
sfrb    P5DIR             = P5DIR_;
#define P5SEL_              0x0033  /* P5 功能选择寄存器*/
sfrb    P5SEL             = P5SEL_;

#define P6IN_               0x0034  /* P6 输入寄存器 */
const sfrb P6IN           = P6IN_;
#define P6OUT_              0x0035  /* P6 输出寄存器*/
sfrb    P6OUT             = P6OUT_;
#define P6DIR_              0x0036  /* P6 方向选择寄存器*/
sfrb    P6DIR             = P6DIR_;
#define P6SEL_              0x0037  /* P6 功能选择寄存器*/
sfrb    P6SEL             = P6SEL_;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -