刚学习MSP430F149,想问各位高手几个问题。小弟在此先谢过了!!!
1、关看门狗,为啥只可以用WDTCTL=WDTPW+WDTHOLD;而不能用WDTCTL|=WDTPW+WDTHOLD;(程序验证时错误的)!!2、时钟初始化程序void...
1、关看门狗,为啥只可以用 WDTCTL = WDTPW + WDTHOLD;
而不能用 WDTCTL |= WDTPW + WDTHOLD;(程序验证时错误的)!!
2、时钟初始化程序
void clock_initial( )
{
//在这个模块中只定义SMCLK和MCLK
unsigned char i;
BCSCTL1 &= ~XT2OFF; //打开XT2振荡器
BCSCTL2 |= SELM1 + SELS; //SMCLK 8M,MCLK 8M
do //默认不打开时钟中断使能
{
IFG1 &= ~OFIFG;
for(i=0;i<100;i++) _NOP();
}
while((IFG1 & OFIFG) != 0);
IFG1 &= ~OFIFG; //这句话可不要??
}
最后一句话是不是可以不要??? 为啥程序中都有,但是我去了,却也不影响,求解释!!! 展开
而不能用 WDTCTL |= WDTPW + WDTHOLD;(程序验证时错误的)!!
2、时钟初始化程序
void clock_initial( )
{
//在这个模块中只定义SMCLK和MCLK
unsigned char i;
BCSCTL1 &= ~XT2OFF; //打开XT2振荡器
BCSCTL2 |= SELM1 + SELS; //SMCLK 8M,MCLK 8M
do //默认不打开时钟中断使能
{
IFG1 &= ~OFIFG;
for(i=0;i<100;i++) _NOP();
}
while((IFG1 & OFIFG) != 0);
IFG1 &= ~OFIFG; //这句话可不要??
}
最后一句话是不是可以不要??? 为啥程序中都有,但是我去了,却也不影响,求解释!!! 展开
2个回答
展开全部
一、看门狗寄存器操作和FLASH操作一样,在写的时候都需要在相对应的位(15-8位)写入相应的数据才允许对其进行操作。WDTHOLD=1是指停止看门狗计数工作,而前面的WDTPW 则是对应在5AH。即WDTCTL = WDTPW + WDTHOLD等价于WDTCTL =0x5A00+0x0080;而是用WDTCTL |= WDTPW + WDTHOLD的时候,高字节的数据不再是5A,所以你写入无效。所以这个写法是必须的。
二、对第二个问题,我一直是这样用的,习惯了也没怎么去注意了。这个可以不要,但大家都习惯这样用吧。
重要的是第一点哈
二、对第二个问题,我一直是这样用的,习惯了也没怎么去注意了。这个可以不要,但大家都习惯这样用吧。
重要的是第一点哈
考试派丨美洽教育
2024-05-28 广告
2024-05-28 广告
作为世界经济的发动机,中国对于国际化的会计师是供不应求的。为了帮助中国培养更多的国际化的会计师团体,国际会计师公会AIA本着对CICPA专业考试的认可和尊重,为取得CICPA并且工作满三年的学员专门设计三门课程(其中一门免考),通过考试后即...
点击进入详情页
本回答由考试派丨美洽教育提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询