1309|0

3836

帖子

19

TA的资源

纯净的硅(中级)

楼主
 

MSP430单片机看门狗实用方法 [复制链接]

以MSP430F2274为例。其中汇编实现采用的是IAR汇编,CCE汇编实现稍作修改即可。 1. 看门狗有三种工作模式:停止模式,计时器模式,看门狗模式。


2. 其中后两种模式可以选择的时钟源有:SMCLK和ACLK。


3. 在使用后两种模式时候要注意单片机所处的状态下看门狗能否工作,如单片机处在LPM3时候只有ACLK时钟,处在LPM4下,没有时钟可以使用。


4. 看门狗模式的使用方法:当看门狗计数溢出时,程序复位。在程序中开启看门狗,在计数溢出前清空看门狗,或重置看门狗,以使其重新计数。若程序跑飞,看门狗可能没有被清空或重置,就会溢,使程序复位。


5. 在MSP430F2274中,看门狗模式下可以计时最长为1s,若需要以更长的时间复位,可采取的方法,使用其他计数器,计数满后执行((void (*)())RESET_VECTOR)();或计数满后往看门狗控制寄存器写个错误值或执行一条无效命令:如((void (*)())0x170)();0x170是外围模块的一个地址,不可能是一个函数地址,所以执行此句将使程序复位。


停止模式:关闭看门狗


C语言实现:WDTCTL = WDTPW + WDTHOLD


汇编语言实现:mov.w #WDTPW+WDTHOLD,&WDTCTL


计时器模式:作为一个计时器使用,计数器满产生中断时执行看门狗中断函数。


C语言实现:


主程序中:开启看门狗计时器,如:WDTCTL = WDT_MDLY_8;或WDTCTL = WDT_ADLY_250;等


看门狗中断函数为:


#pragma vector=WDT_VECTOR


__interrupt void watchdog_timer(void)


{


//..................................


}


汇编语言实现:


开启看门狗计时器,如:


mov.w #WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0 ,&WDTCTL


或 mov.w #WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0 ,&WDTCTL等


中断向量表中的看门狗中断向量:


ORG 0FFF4h ;msp430f2274的看门狗中断地址


DW RESET ;程序开始处以REST作为标号


看门狗中断函数:


WDT_ISR


;....................


reti


看门狗模式:计数溢出时,执行复位中断函数。


C语言实现:


清看门狗:WDTCTL = WDTPW+WDTCNCTL;


设置看门狗:WDTCTL = WDT_MRST_0_5;


或WDTCTL = WDT_ARST_1000;等


汇编语言实现:


中断向量表中的复位向量:


ORG 0FFFEh ;msp430f2274的复位地址


DW RESET ;程序开始处以REST作为标号


清看门狗:mov.w #WDTPW+WDTCNCTL,&WDTCTL


设置看门狗:


mov.w # WDTPW+WDTCNTCL+WDTIS1 ,&WDTCTL


mov.w # WDTPW+WDTCNTCL+WDTSSEL,&WDTCTL;等。


扩展阅读:看门狗应用解析

 
点赞 关注

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
【有奖直播】2025是德科技数字月-数字新品来助阵
直播时间:3月19日(周三)14:00
直播奖励:小米口红充电宝、倍思充电线、是德科技十周年鼠标垫

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表