硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4902|回复: 3
收起左侧

[μCOS-II] 在例程的基础上加入独立看门狗程序后,程序一直复位

[复制链接]

8

主题

21

回帖

45

积分

新手上路

积分
45
发表于 2014-10-15 13:33:59 | 显示全部楼层 |阅读模式
在UCOS-III例程Ex002-信号量例程中加入看门狗程序后,发现程序一直复位,不知道是怎么回事,还麻烦各位帮忙看下,程序修改情况如下:
1. 在bs[img]file:///C:/Users/Administrator/AppData/Roaming/Tencent/Users/290774733/QQ/WinTemp/RichOle/WU5TB%XK[%7D00V4D2N4B_8SA.jpg[/img]p.c中bsp_Init()函数中加入bsp_InitIwdg(2000);初始化看门狗
void bsp_Init(void)
{
    NVIC_Configuration();  /* 中断优先级分组配置 */
   
    bsp_InitUart();        /* 初始化串口 */
    bsp_InitLed();            /* 初始LED指示灯端口 */
//    BEEP_InitHard();       /* 初始化蜂鸣器 */
    bsp_InitKey();            /* 按键初始化 */   
    Buzzer_HardWareInit();
    bsp_InitIwdg(2000);     /* 设置喂狗周期 大约200ms*/

   
//    TIM6_MeasureConfig(); /* 程序运行时间测量 */
//    bsp_InitTimer();      /* 初始化系统滴答定时器 */
      LCD_InitHard();          /* 初始化显示器硬件(配置GPIO和FSMC,给LCD发送初始化指令) */
    TOUCH_InitHard();
  
    /* the refresh window is: ~780 * (0x7f-0x50) = 36.6ms < refresh window < ~780 * 64 = 49.9ms */
    /* 窗口看门狗初始化 */
//    bsp_InitWwdg(0x7f, 0x50, WWDG_Prescaler_8);


#ifdef TRACE_EN                                                 /* See project / compiler preprocessor options.         */
    BSP_CPU_REG_DBGMCU_CR |=  BSP_DBGMCU_CR_TRACE_IOEN_MASK;    /* Enable tracing (see Note #2).                        */
    BSP_CPU_REG_DBGMCU_CR &= ~BSP_DBGMCU_CR_TRACE_MODE_MASK;    /* Clr trace mode sel bits.                             */
    BSP_CPU_REG_DBGMCU_CR |=  BSP_DBGMCU_CR_TRACE_MODE_SYNC_04; /* Cfg trace mode to synch 4-bit.                       */
#endif
}
2. 在app.c文件中AppTaskUserIF()函数中,添加喂狗函数

static void AppTaskUserIF(void *p_arg)
{
    uint8_t uKeyCode;

    (void)p_arg;                   /* 避免编译器报警 */
  
    while (1)
    {           
        bsp_KeyScan();
        
        uKeyCode = bsp_GetKey();
        if(uKeyCode != KEY_NONE)
        {
            if(uKeyCode == KEY_1_DOWN)
            {
                BSP_OS_SemPost(&SEM_SYNCH);   
            }   
        }
        
        IWDG_Feed();
        BSP_OS_TimeDlyMs(20);         
    }
}


[img]file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\290774733\QQ\WinTemp\RichOle\WU5TB%XK[}00V4D2N4B_8SA.jpg[/img]
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106974
QQ
发表于 2014-10-15 21:49:35 | 显示全部楼层
把函数 bsp_InitIwdg(2000);     /* 设置喂狗周期 大约200ms*/
放在最后初始化,估计是LCD等初始化时间有点长,喂狗函数一直没有得到执行。
回复

使用道具 举报

8

主题

21

回帖

45

积分

新手上路

积分
45
 楼主| 发表于 2014-10-16 11:17:51 | 显示全部楼层

回 eric2013 的帖子

eric2013:把函数 bsp_InitIwdg(2000);     /* 设置喂狗周期 大约200ms*/
放在最后初始化,估计是LCD等初始化时间有点长,喂狗函数一直没有得到执行。 (2014-10-15 21:49) 
谢谢回答,我把喂狗周期设置长一点,喂狗函数执行时间设置短点,就可以了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106974
QQ
发表于 2014-10-16 14:27:16 | 显示全部楼层

回 czsczs 的帖子

czsczs:谢谢回答,我把喂狗周期设置长一点,喂狗函数执行时间设置短点,就可以了 (2014-10-16 11:17) 
恩,解决了就好。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-12 10:58 , Processed in 0.157406 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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