MSP430单片机C编程
MSP430单片机C编程中,往往遇到以下的语句:WDTCTL=WDTPW+WDTHLD;书上编程举例说这是关闭看门狗,可没说为什么要这样表达,我不明白,这样的语句如何实现...
MSP430单片机C编程中,往往遇到以下的语句:WDTCTL=WDTPW+WDTHLD;
书上编程举例说这是关闭看门狗,可没说为什么要这样表达,我不明白,这样的语句如何实现关闭功能?为何要将两个控制位相加就能实现关闭呢?相减行不行?或者用别的方式?望各位赐教(用C语言知识讲解),最好能说明一下用这样的C语句的原因,谢谢 展开
书上编程举例说这是关闭看门狗,可没说为什么要这样表达,我不明白,这样的语句如何实现关闭功能?为何要将两个控制位相加就能实现关闭呢?相减行不行?或者用别的方式?望各位赐教(用C语言知识讲解),最好能说明一下用这样的C语句的原因,谢谢 展开
8个回答
展开全部
相减当然不行了,+代表或的意思。
WDTPW,是关闭开门狗的密码,无它则关闭不了看门狗。
你把整个换成二进制,对比寄存器就容易明白了。
WDTPW,是关闭开门狗的密码,无它则关闭不了看门狗。
你把整个换成二进制,对比寄存器就容易明白了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题在我开始学习430的时候也是很不解,不过现在看来是很容易但很必要,首先你要明白每个关键字的含义,WDTCTL代表的是看门狗寄存器,WDTPW和WDTHLD是控制位,就是说WDTCTL就是一个八位的数据,你要通过控制位的或运算来控制它的值,这是430特有的东西,不是C语言带的,只看C语言你是不会理解的,建议看一下《msp430系列16位超低功耗单片机原理与应用》;这本书很好的,我当年入门时就是用这本书入的门,你看了也会达到我这种水平的!
祝你好运!
祝你好运!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
430的编译环境里都提供一系列与片子型号对应的头文件,比如msp430x14x.h就是对14系列的资源定义,说得明白点,就是许多#define宏定义,然后你会发现每个430程序都会包含对应的头文件。比如你说的WDTCTL=WDTPW+WDTHOLD,WDTCTL已经被定义为对应寄存器(看门狗控制寄存器)的地址,WDTPW和WDTHOLD是该寄存器对应位为1的数值,也已经宏定义,如WDTHOLD为第7位,就已经被定义为0x80(0b10000000),然后通过把数值赋给对应地址(可视为变量),这样就可以将对应位置1,如果要同时置多位,就用“加”或者“或”。之所以有这么多的宏定义,就是为了用户记忆方便,记忆有意义的符号比数字好记多了。
补充:为了只对某一位操作,不影响其他位的值,一般用与操作或者或操作,如果是将某位清零,如打开高频晶振,就是是BCSCTL1&=~XT2OFF;即把某未取反再与,对应位就变0,而其余位与上1不改变,原理如上。
补充:为了只对某一位操作,不影响其他位的值,一般用与操作或者或操作,如果是将某位清零,如打开高频晶振,就是是BCSCTL1&=~XT2OFF;即把某未取反再与,对应位就变0,而其余位与上1不改变,原理如上。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哈哈哈哈哈哈哈 刚开始我也困惑
找到操作手册,找到WDTPW,WDTHLD。 你就知道为什么要相加了。
WDTCTL是控制字。
找到操作手册,找到WDTPW,WDTHLD。 你就知道为什么要相加了。
WDTCTL是控制字。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |