|
在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] |
|