#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 " */
上一篇:MSP430G2553 WDT的看门狗模式例子
下一篇:MSP430学习小结1-看门狗的使用总结
推荐阅读最新更新时间:2024-11-07 15:48
设计资源 培训 开发板 精华推荐
- LTC3623IUDD 高效 12V 音频驱动器的典型应用电路
- 摇杆遥控器
- 开源雪容融钥匙扣
- 使用 Infineon Technologies AG 的 IR3551 的参考设计
- 使用 Analog Devices 的 LTC3803IS6-3 的参考设计
- RT8561A 1MHz、20mA 满量程电流 PWM 到模拟调光控制的典型应用
- 使用 Analog Devices 的 LT1085CT-3.6 的参考设计
- 555控制4017完成8个LED灯的依次闪烁
- 使用 Analog Devices 的 LTC1409 的参考设计
- STEVAL-IHM036V1,具有 SLLIMM STGIPN3H60 和 MCU STM32F100C6T6B 低功耗电机控制的演示板
- 【泰有聊】第二期:泰克CEO为你解读低噪声背后的科学
- 有奖直播:新科技、新课堂、新学期~ ADI软件定义无线电ADALM-Pluto入门实战
- 有奖调查 | 您是如何采购或选择电子元器件的?
- Microchip有奖直播:VectorBlox™ SDK 报名中
- 下载泰克高速接口标准电子书,参与翻盖有礼,惊喜多多!
- LYTSwitch-1 LED驱动器 天生小体积,应用高效率,围观有好礼!
- 模电怎么学?TI帮你定制课程清单!体验“模电选课测试”功能,赢精彩好礼
- 直播已结束|ADI 振动信号的精密采集信号链设计考量
- 【已结束】 Qorvo & Keysight 直播【新一代无线连接的挑战与应对之道】
- TE可穿戴解决方案助你打造暖心大白,答题赢TTI好礼