tangweikang пре 6 година
родитељ
комит
f0905092cd
1 измењених фајлова са 11 додато и 5 уклоњено
  1. 11 5
      iwdg_sample.c

+ 11 - 5
iwdg_sample.c

@@ -19,7 +19,7 @@
 #include <rtthread.h>
 #include <rtdevice.h>
 
-#define IWDG_DEVICE_NAME    "iwg"    /* 看门狗设备名称 */
+#define IWDG_DEVICE_NAME    "wdt"    /* 看门狗设备名称 */
 
 static rt_device_t wdg_dev;         /* 看门狗设备句柄 */
 
@@ -33,7 +33,7 @@ static void idle_hook(void)
 static int iwdg_sample(int argc, char *argv[])
 {
     rt_err_t ret = RT_EOK;
-    rt_uint32_t timeout = 1000;    /* 溢出时间 */
+    rt_uint32_t timeout = 10;    /* 溢出时间 10 秒 */
     char device_name[RT_NAME_MAX];
 
     /* 判断命令行参数是否给定了设备名称 */
@@ -50,21 +50,27 @@ static int iwdg_sample(int argc, char *argv[])
     if (!wdg_dev)
     {
         rt_kprintf("find %s failed!\n", device_name);
-        return RT_ERROR;
+        return -RT_ERROR;
     }
     /* 初始化设备 */
     ret = rt_device_init(wdg_dev);
     if (ret != RT_EOK)
     {
         rt_kprintf("initialize %s failed!\n", device_name);
-        return RT_ERROR;
+        return -RT_ERROR;
     }
     /* 设置看门狗溢出时间 */
     ret = rt_device_control(wdg_dev, RT_DEVICE_CTRL_WDT_SET_TIMEOUT, &timeout);
     if (ret != RT_EOK)
     {
         rt_kprintf("set %s timeout failed!\n", device_name);
-        return RT_ERROR;
+        return -RT_ERROR;
+    }
+    ret = rt_device_control(wdg_dev, RT_DEVICE_CTRL_WDT_START, RT_NULL);
+    if (ret != RT_EOK)
+    {
+        rt_kprintf("start %s failed!\n", device_name);
+        return -RT_ERROR;
     }
     /* 设置空闲线程回调函数 */
     rt_thread_idle_sethook(idle_hook);