微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 430头文件的解释

430头文件的解释

时间:11-17 来源:互联网 点击:
__no_initvolatileunion

{

unsignedshortWDTCTL;/*WatchdogTimerControl*/

struct

{

unsignedshortWDTIS0:1;/**/

unsignedshortWDTIS1:1;/**/

unsignedshortWDTSSEL:1;/**/

unsignedshortWDTCNTCL:1;/**/

unsignedshortWDTTMSEL:1;/**/

unsignedshortWDTNMI:1;/**/

unsignedshortWDTNMIES:1;/**/

unsignedshortWDTHOLD:1;/**/

}WDTCTL_bit;

}@0x0120;

enum{

WDTIS0=0x0001,

WDTIS1=0x0002,

WDTSSEL=0x0004,

WDTCNTCL=0x0008,

WDTTMSEL=0x0010,

WDTNMI=0x0020,

WDTNMIES=0x0040,

WDTHOLD=0x0080

};

WDTCTL的地址单元是0x0120后面这段是什么意思呢。联合体?

unsignedshortWDTIS0:1;//1表示字段宽度(2进制),这表示WDTISO要么是1要么是0

后面这个8个位和WDTCTL共享存储单元。看userguide,WDTCTL是一个16位的寄存器,WDTIS0位于其bit0,以此类推,WDTHOLD是bit7,复位之后这几个位都是0。在MSP的C语言中,并不支持位变量。在430的IO头文件中,用这种定义方式实现了对寄存器的位变量访问。

WDTCTL=WDTPW+WDTHOLD;//停止看门狗这个停止看门狗的操作如何解释?

WDTCTL很明显,是看门狗控制寄存器,而WDTPW是一个宏定义,头文件里面是这样子的,#defineWDTPW(0x5A00u),userguide中WDTCTL是一个16位的寄存器,其中bit15-bit8名字是WDTPW,mustbewrittenas0x5a,这8个位必须初始化成0x5a。这句也就是完成了WDTPW的初始化并且将WDTHOLD置位,WDTHOLD置位的结果是看门狗定时器停止。

unsignedshortWDTNMIES:1;//看门狗定时器非屏蔽中断边沿选择位。

unsignedshortWDTNMI:1;//看门狗定时器非屏蔽中断选择

unsignedshortWDTTMSEL:1;//看门狗定时器模式选择

unsignedshortWDTCNTCL:1;//看门狗定时器计数器清零选择位

unsignedshortWDTSSEL:1;//看门狗定时器时钟源选择

unsignedshortWDTIS0:1;//看门狗定时间隔选择

unsignedshortWDTIS1:1;//时间间隔选择

PUC上电清零powerupclear

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top