历史上的今天
今天是:2025年01月28日(星期二)
2020年01月28日 | MSP430(G2553)用看门狗定时器来产生周期信号
2020-01-28 来源:eefocus
#include #include volatile unsigned int i = 0; // 中断服务子程序中所用到的全局变量, 最好定义成 volatile 型, 具体原因和用法可以参考我的其他博文介绍 void main (void) { WDTCTL = WDT_MDLY_0_5; // 周期 0.5ms, 设置可参考下面头文件中的截段 IE1 |= WDTIE; // 使能WDT中断 P2DIR |= BIT2; // P2.2输出 _EINT(); // 使能全局中断 for (;;) { LPM0; // 进入LPM0 _NOP(); } } // 看门狗中断服务子程序 #pragma vector=WDT_VECTOR __interrupt void WDT_Timer_ISR(void) { if (i++ > 1) { P2OUT ^= BIT2; // 取反 } } ============================================================================================================================== //========================================================================================================================== // 相关头文件中的定义 /************************************************************ * WATCHDOG TIMER ************************************************************/ #define __MSP430_HAS_WDT__ /* Definition to show that Module is available */ #define WDTCTL_ (0x0120u) /* Watchdog Timer Control */ DEFW( WDTCTL , WDTCTL_) /* The bit names have been prefixed with "WDT" */ #define WDTIS0 (0x0001u) #define WDTIS1 (0x0002u) #define WDTSSEL (0x0004u) #define WDTCNTCL (0x0008u) #define WDTTMSEL (0x0010u) #define WDTNMI (0x0020u) #define WDTNMIES (0x0040u) #define WDTHOLD (0x0080u) #define WDTPW (0x5A00u) /* WDT-interval times [1ms] coded with Bits 0-2 */ /* WDT is clocked by fSMCLK (assumed 1MHz) */ #define WDT_MDLY_32 (WDTPW+WDTTMSEL+WDTCNTCL) /* 32ms interval (default) */ #define WDT_MDLY_8 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0) /* 8ms " */ #define WDT_MDLY_0_5 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1) /* 0.5ms " */ #define WDT_MDLY_0_064 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0) /* 0.064ms " */ /* WDT is clocked by fACLK (assumed 32KHz) */ #define WDT_ADLY_1000 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL) /* 1000ms " */ #define WDT_ADLY_250 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0) /* 250ms " */ #define WDT_ADLY_16 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1) /* 16ms " */ #define WDT_ADLY_1_9 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0) /* 1.9ms " */ /* Watchdog mode -> reset after expired time */ /* WDT is clocked by fSMCLK (assumed 1MHz) */ #define WDT_MRST_32 (WDTPW+WDTCNTCL) /* 32ms interval (default) */ #define WDT_MRST_8 (WDTPW+WDTCNTCL+WDTIS0) /* 8ms " */ #define WDT_MRST_0_5 (WDTPW+WDTCNTCL+WDTIS1) /* 0.5ms " */ #define WDT_MRST_0_064 (WDTPW+WDTCNTCL+WDTIS1+WDTIS0) /* 0.064ms " */ /* WDT is clocked by fACLK (assumed 32KHz) */ #define WDT_ARST_1000 (WDTPW+WDTCNTCL+WDTSSEL) /* 1000ms " */ #define WDT_ARST_250 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS0) /* 250ms " */ #define WDT_ARST_16 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1) /* 16ms " */ #define WDT_ARST_1_9 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0) /* 1.9ms " */
史海拾趣
|
本帖最后由 paulhyde 于 2014-9-15 09:34 编辑 本人英语基础较差,急需电子类英文翻译文章,做毕业设计使用。希望的到诸位帮助,在次先表示感谢啦!!!我的邮箱:liqz2004001@sina.comQQ:258364809 … 查看全部问答> |
|
目前CPU主频为72M,Fpclk=36M #define BITRATE10K72MHZ 0x0015018F #define BITRATE100K72MHZ&n ...… 查看全部问答> |
|
现在想在EMMC卡(焊在PCB上的存储卡)或是T卡设置两个目录或是分区 1个连接PC的时候,在PC上可见; 另1个连接PC的时候,在PC上不可见; 但是两个目录或是分区在手机端都是可见得。 隐藏的目录或是分区,主要用来保护里面的文件不被拷贝到PC或是 ...… 查看全部问答> |
|
我在SMDK6410的机器上跑WINCE6.0, 我编写了一个WININET的应用,但我发现一个很奇怪的问题。 当我先连接ActiveSyn的时候,然后在进行GPRS拨号,此时调用WININET的程序登录GPRS内网的时候, 就返回12031的错误。但当我先进行GPRS拨号,在连接Acti ...… 查看全部问答> |
|
我为PPC2003的机器写了一个小程序,这个程序包括一个动态链接库文件的.当我把程序和这个动态库拷贝到PPC中去运行时,怎么运行不了啊!程序报错说找不到那个动态链接库文件… 查看全部问答> |
|
1 虚拟仪器简介所有的测量仪器的主要功能都是由数据采集、数据分析和结果显示等三大部组成。其中数据分析和结果显示完全能用PC机的软件系统来完成,因此,只要额外提供一定的数据采集硬件,就可用PC机组成测量仪器。基于PC机的测量仪器就称之为虚拟 ...… 查看全部问答> |
|
LM3S811无法下载 被锁了??? https://bbs.eeworld.com.cn/viewthread.php?tid=291722&page=1#pid1093456 之前坛友发的帖子,提到利尔达2011 MCU Day的LM3S811评估板不能在Keil MDK里仿真及下载。 后来联系了TI,根据TI提供 ...… 查看全部问答> |




