社区导航

 

搜索
查看: 223|回复: 0

[资料分享] MSP430的看门狗常见用法以及中断函数的书写方法

[复制链接]

285

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-7-11 23:26 | 显示全部楼层 |阅读模式
本帖最后由 火辣西米秀 于 2019-7-11 23:27 编辑

MSP430的看门狗的基本用法

看门狗是为了防止程序跑飞而设定的,但是由于看门狗是一个类似于定时器,因此可以把他当作定时器来使用

示例代码:用看门狗定时器使一个led闪烁

#include <msp430x14x.h>
void  main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDT_MDLY_32;//宏定义
  IE1 |=WDTIE; //允许看门狗定时器中断
  P2DIR |= BIT7;
  
  _BIS_SR(LPM0_bits+GIE);//在这里的话将cpu进入低功耗模式

}
#pragma vector = WDT_VECTOR
__interrupt void watchdag_timer(void)
{
  P2OUT ^=BIT7;//异或操作基本上是取反操作
}
注意这里有一个比较好的宏定义:WDTCTL = WDT_MDLY_32;进入该宏定义会发现类似的宏定义有很多

360截图20190711233435316.jpg

 

这里我们可以根据通常的需要,选择合适的定时时间
说到定时时间,这里又不得不讲一下中断函数,在IAR这个编译环境中,一般中断函数的写法是

#pragma vector = 中断向量
__interrupt void 中断函数名(void)
{
  用户程序;
}

注意,中断向量可以在430的头文件中查找,中断函数的声明必须是void 中断函数名(void),这是因为中断函数没有返回值,也没有中断的形式参数


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/6 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-3-29 17:48 , Processed in 0.083995 second(s), 20 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表