首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

请问一段MSP430的C程序

2012-10-21 
请教一段MSP430的C程序void main (void){WDTCTL WDTPW + WDTHOLD //设置看门狗控制寄存器,关看门狗TACTL

请教一段MSP430的C程序
void main (void)
{
WDTCTL= WDTPW + WDTHOLD; //设置看门狗控制寄存器,关看门狗
TACTL = TASSEL0 + TACLR; // 设置定时器A控制寄存器,
// TASSEL0=0x0100,选择辅助时钟ACLK,
// TACLR=0x0004,清除定时器A计数器
CCTL0 = CCIE; //设置捕获/比较控制寄存器,CCIE=0x0010,使能捕获比较中断
CCR0 =16384; //设置捕获/比较寄存器,初始值为16384,对于32768Hz的频率,相当于0.5s
P3DIR |=BIT7; //P3.7为输出
TACTL |= MC0; //设置定时器A控制寄存器,MC0=0x0010,使计数模式为增计数
_EINT(); //使能中断,这是一个C编译器支持的内部过程。
while(1); //无限次while循环
}

MSP430的C程序语句右边怎么很多都是用变量呢,我怎么知道那代表的是啥意思哦,比如TACTL |= MC0,为什么就是后面所说嘛的那涵义呢...
我看别的芯片Datasheet里一般都会对各寄存器的各个值及对应的状态功能说嘛,但MSP430的Datasheet好像也没说对TACTL 寄存器的各位数值进行详细的介绍,那这样我怎么去操作呢?
PS:我的芯片是MSP430G2231,初学,请指导...

[解决办法]
msp430的库用了很多宏定义,就拿关闭看门狗这个语句来说吧,WDTCTL= WDTPW + WDTHOLD; //设置看门狗控制寄存器,关看门狗
WDTPW 这个是关闭看门狗的密码 在头文件里面是定义成0x5a00,具体是什么我也没有记清楚。这样做的好处是直接用这些名字比较容易看懂,就好像 BIT0,BIT1其实就是指的IO口的第一位。第二位等 ,看习惯了其实很好用的

[解决办法]
程序右边不是变量当然也可以使变量,都是指向寄存器的寄存器名字,就是说是给寄存器赋值,后面都是宏定义的常量或者表达式。
[解决办法]

探讨
我看别的芯片Datasheet里一般都会对各寄存器的各个值及对应的状态功能说嘛,但MSP430的Datasheet好像也没说对TACTL 寄存器的各位数值进行详细的介绍,那这样我怎么去操作呢?
PS:我的芯片是MSP430G2231,初学,请指导...

热点排行