查看: 2007|回复: 1

[其他] 求助看门狗问题解答

[复制链接]

该用户从未签到

51

主题

307

帖子

0

高级会员

Rank: 4

积分
651
最后登录
2020-9-4
发表于 2016-4-12 17:04:02 | 显示全部楼层 |阅读模式
楼主:


我正在编写K64的看门狗的程序.运行在mqx系统下,现在我作了一个初始化的程序,调用初始化程序后,一直不问狗,但不产生看门狗中断中断.
使用的编译器是IAR.
程序如下:
void WDOG_Feed(void)
{
     WDOG_REFRESH = 0xA602;
     WDOG_REFRESH = 0xB480;   //喂狗
}
//关闭和开启看门狗
void WDOG_Close(void)
{
     WDOG_UNLOCK = 0xC520u;
     WDOG_UNLOCK = 0xD928u;
     WDOG_STCTRLH &= ~0x0001; //关闭看门狗 WDOTEN 0
}
void WDOG_Open(void)
{
     WDOG_UNLOCK = 0xC520;
     WDOG_UNLOCK = 0xD928;
     WDOG_STCTRLH |= 0x0001;  //打开看门狗 WDOTEN 1
}
void WDOG_Init(void)
{
     WDOG_UNLOCK = 0xC520;      
     WDOG_UNLOCK = 0xD928;               //解锁看门狗寄存器(重新写入前必须解锁)两次写入不能超过20个时钟周期
    WDOG_PRESC = 0x0700;  //(7+1)分频
    WDOG_TOVALH = 0x1110;    //看门狗超时时间设置为3s
     WDOG_TOVALL = 0x5E90;
  //    WDOG_STCTRLH |= 0x0001;  //打开看门狗 WDOTEN 1
       // 2秒
//    WDOG_TOVALH = 0x01C9;
//     WDOG_TOVALL = 0xC380;
//     // 使能总线,静止窗口模式,禁止看门口中断,开启开门狗
     WDOG_STCTRLH = 0x37;
}

void  main(void)
{
//   DisableInterrupts;
     WDOG_Init();      //初始化看门狗  
     LED_init();
   //  EnableInterrupts;
   //  WDOG_Open();     //开启看门狗            
     time_delay_ms(1500);
     
    while(1)
    {
        led(LED0, LED_ON);                 //LED0 亮
        time_delay_ms(500);                //延时500ms
        led(LED0, LED_OFF);                //LED0 灭
        time_delay_ms(500);                //延时500ms
      //  WDOG_Feed();
    }
}

哪位大侠指点一下. 是否正确?多谢!
在启动程序中,已经将对看门狗操作的程序屏蔽到了.还需要修改其他地方吗?








我知道答案 目前已有1人回答
回复

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24903
最后登录
2025-7-22
发表于 2016-4-13 16:06:01 | 显示全部楼层
楼主你好!
你启动之后,看下你的看门狗寄存器,是否已经使能了?
看你这个现象,像看门狗被禁止了。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-22 19:27 , Processed in 0.081163 second(s), 21 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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