wjackson 发表于 2011-3-23 19:46:22

求救:::书上一个例子:看门狗定时功能产生一个方波

#include <msp430x14x.h>
void main( void )
{
WDTCTL=WDT_MDLY_32;                              
IE1 |=WDTIE;
P1DIR |=0x00;
_EINT();
for(;;)
{
    _BIS_SR(CPUOFF);
    _NOP();
}
}
#pragma vector=WDT_VECTOR
__interrupt void watchdog_timer(void)
{
P1OUT^=0x012;
}
................................................................................
...................................................................................
自己不懂,问下都是啥意思:
WDTCTL=WDT_MDLY_32,这句我查头文件说( WDTCTL_             (0x0120)/* Watchdog Timer Control */)
                                    (WDT_MDLY_32   (WDTPW+WDTTMSEL+WDTCNTCL)         /* 32ms interval (default) */)
WDTPW是(0x5A00),WDTTMSEL是 (0x0010),WDTCNTCL 是 (0x0008)
我想问的是16进制数代表啥意思,可以认为0x0120=0x5A00+0x0010+0x0008吗?这说明什么?有啥意思?

IE1 |=WDTIE这又是什么意思?在头文件中IE1 (0x0000)/* Interrupt Enable 1 */.......... WDTIE 是 (0x01)
难道0x0000 |=0x01,嘛意思啊,看的头昏
每句都看的发慌.
希望得得到指点啊!

小弟菜鸟一个,望大哥耐心解读以下,拜谢啦!

wanpujame 发表于 2011-3-23 20:31:17

1、0x0120是WDTCTL寄存器的地址
http://cache.amobbs.com/bbs_upload782111/files_37/ourdev_624877F18AGU.JPG
(原文件名:1.JPG)
2、WDTPW、WDTTMSEL、WDTCNTCL是WDTCTL寄存器的控制位
http://cache.amobbs.com/bbs_upload782111/files_37/ourdev_624878GLCLGZ.JPG
(原文件名:2.JPG)
3、WDTCTL=WDT_MDLY_32这一句的意思就是将WDTCTL寄存器的WDTPW、WDTTMSEL、WDTCNTCL位置位(WDTPW是写入0x5A00)。

快速学习MSP430必不可少的三样东西:MSP430 datasheet、MSP430Fxxx Family User's Guide、TI MSP430 Code Example,有了这三样其它基本可以不需要了,也不需要买书(国内的书大部分是翻译datasheet的,有的翻译的还有错误)。如果还想进一步深入,可以看看TI的MSP430相关的应用笔记。

mxtt 发表于 2011-3-25 13:31:47

IE1 |=WDTIE就是IE1寄存器的WDTIE位置位同时不影响其它位。

lin562794072 发表于 2012-7-3 20:42:29

WDTCTL=WDT_MDLY_32是怎么实现定时的?

34071417 发表于 2012-7-4 09:15:49

头文件中搜WDT_MDLY_32
页: [1]
查看完整版本: 求救:::书上一个例子:看门狗定时功能产生一个方波