楼主: yinshaojie

[求助] MKE02看门狗问题

[复制链接]

该用户从未签到

7

主题

77

帖子

0

中级会员

Rank: 3Rank: 3

积分
227
最后登录
2015-4-27
 楼主| 发表于 2015-4-7 15:03:16 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-4-7 14:55
你把start里面的关闭看门狗屏蔽了,你程序还能跑起来?
我不关闭看门狗,并且不配置,就会一直跑不起来, ...

void SystemInit( void )
{
#if !defined(ENABLE_WDOG)   
        /* Disable the watchdog timer */
    WDOG_Disable();
#else
        /* Disable the watchdog timer but enable update */
    WDOG_DisableWDOGEnableUpdate();   
#endif
       
}
把这个函数中的WDOG_Disable();注释掉程序就不会跑了
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-4-7 15:05:51 | 显示全部楼层
yinshaojie 发表于 2015-4-7 15:03
void SystemInit( void )
{
#if !defined(ENABLE_WDOG)   

哦,原来你跑的不是IAR工程,一样的概念。
你可以直接在这里先喂下狗,然后再配置你的看门狗溢出时间,这样肯定会工作。
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

77

帖子

0

中级会员

Rank: 3Rank: 3

积分
227
最后登录
2015-4-27
 楼主| 发表于 2015-4-7 15:05:56 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-4-7 14:55
你把start里面的关闭看门狗屏蔽了,你程序还能跑起来?
我不关闭看门狗,并且不配置,就会一直跑不起来, ...

void SystemInit( void )
{
#if !defined(ENABLE_WDOG)   
        /* Disable the watchdog timer */
    WDOG_Disable();
#else
        /* Disable the watchdog timer but enable update */
    WDOG_DisableWDOGEnableUpdate();   
#endif
       
}把这个函数里的WDOG_Disable()注释掉程序就不会跑了
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

77

帖子

0

中级会员

Rank: 3Rank: 3

积分
227
最后登录
2015-4-27
 楼主| 发表于 2015-4-7 15:11:59 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-4-7 15:05
哦,原来你跑的不是IAR工程,一样的概念。
你可以直接在这里先喂下狗,然后再配置你的看门狗溢出时间,这 ...

我用的是keil的例程,具体代码能贴出来吗?
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-4-7 15:17:23 | 显示全部楼层
本帖最后由 FSL_TICS_ZJJ 于 2015-4-7 15:33 编辑
yinshaojie 发表于 2015-4-7 15:11
我用的是keil的例程,具体代码能贴出来吗?

  WDOG_Feed();
      WDOG->CS1       |= WDOG_CS1_UPDATE_MASK;

    WDOG_Unlock();
    WDOG->CS2    |=  0x01;
   WDOG->TOVAL8B.TOVALL =(1000);
   WDOG->TOVAL8B.TOVALH =(1000)>>8;
      
    WDOG_Feed();

把这段代码贴到你void SystemInit( void )这个函数里面,把函数里面的代码屏蔽。
最后把主程序中的看门狗相关的都屏蔽,你debug的时候回看到wdog_cnt寄存器在跑,等跑到和TOVAL 相等之后,就会复位。

回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-4-7 15:49:00 | 显示全部楼层
本帖最后由 FSL_TICS_ZJJ 于 2015-4-7 15:57 编辑

WDOG_driver.zip (323.81 KB, 下载次数: 29)
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

77

帖子

0

中级会员

Rank: 3Rank: 3

积分
227
最后登录
2015-4-27
 楼主| 发表于 2015-4-7 15:58:28 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-4-7 15:17
WDOG_Feed();
      WDOG->CS1       |= WDOG_CS1_UPDATE_MASK;

可以了,非常感谢!
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

77

帖子

0

中级会员

Rank: 3Rank: 3

积分
227
最后登录
2015-4-27
 楼主| 发表于 2015-4-7 16:00:08 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-4-7 15:17
WDOG_Feed();
      WDOG->CS1       |= WDOG_CS1_UPDATE_MASK;

WDOG->TOVAL  =  1000;这个值按理说是1S,但是我实际测出来怎么是100s的样子啊
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-4-7 16:06:20 | 显示全部楼层
yinshaojie 发表于 2015-4-7 16:00
WDOG->TOVAL  =  1000;这个值按理说是1S,但是我实际测出来怎么是100s的样子啊

看15楼:
   WDOG->TOVAL8B.TOVALL =(1000);
   WDOG->TOVAL8B.TOVALH =(1000)>>8;
这样定义,不要一起定义TOVAL。
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-4-7 16:07:55 | 显示全部楼层
yinshaojie 发表于 2015-4-7 16:00
WDOG->TOVAL  =  1000;这个值按理说是1S,但是我实际测出来怎么是100s的样子啊

你说的这个问题我也发现了,我发现,这个1000=0x03E8,
如果直接定义TOVAL,会把高字节和低直接搞反了,这个是头文件定义的原因。
所以你分开定义低字节和高字节,就可以实现1S
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-24 00:20 , Processed in 0.108742 second(s), 30 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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