1009|2

1万

帖子

16

TA的资源

版主

楼主
 

【RTT&英飞凌PSoC6评估板(带触摸)】7,WDT [复制链接]

这个狗可把我累坏了。本来是很简单的事情,我跑了好几天。

程序很好理解,就是在回调函数中喂狗。如果不喂就复位。

以下是程序,把这个程序考贝到新建的C文件,同main.c放一个目录就行:

/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2023-07-07     Administrator       the first version
 */

/*
程序在空闲钩子函数内部喂狗操作,如果不喂狗mcu将在5S后自动复位重启
*/

#include <rtthread.h>
#include <rtdevice.h>

#define WDT_DEVICE_NAME "wdt" /* 看门狗设备名称 */

static rt_device_t wdg_dev; /* 看门狗设备句柄 */

static void idle_hook(void)
{
/* 在空闲线程的回调函数里喂狗 如果不喂狗设备将重启*/
// rt_device_control(wdg_dev, RT_DEVICE_CTRL_WDT_KEEPALIVE, NULL);
// rt_kprintf("feed the dog!\n ");
}
/*看门狗测试*/
int wdt_sample(void)
{
rt_err_t ret = RT_EOK;
rt_uint32_t timeout = 5;/* 溢出时间,单位:秒 */

/* 根据设备名称查找看门狗设备,获取设备句柄 */
wdg_dev = rt_device_find(WDT_DEVICE_NAME);
if (!wdg_dev)
{
rt_kprintf("find %s failed!\n",WDT_DEVICE_NAME);
return RT_ERROR;
}
/* 初始化设备 */
rt_device_init(wdg_dev);
/* 设置看门狗溢出时间 */
ret = rt_device_control(wdg_dev, RT_DEVICE_CTRL_WDT_SET_TIMEOUT, &timeout);
if (ret != RT_EOK)
{
rt_kprintf("set %s timeout failed!\n", WDT_DEVICE_NAME);
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",WDT_DEVICE_NAME);
return -RT_ERROR;
}
/* 设置空闲线程回调函数 */
rt_thread_idle_sethook(idle_hook);

return ret;
}
/* 导出到 msh 命令列表中 */
MSH_CMD_EXPORT(wdt_sample, wdt sample);

运行时,打开IDE环境里的终端:

先HELP,看看有没有看门狗的测试程序。然后键入wdt_sample

可以看到开发板重启了。

最新回复

好吧,先HELP,看看有没有看门狗的测试程序。然后键入wdt_sample   详情 回复 发表于 2023-7-8 09:04
点赞 关注
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr

回复
举报

6998

帖子

11

TA的资源

版主

沙发
 
得看到自己的狗,才会不乱事吧。
 
 

回复

6815

帖子

0

TA的资源

五彩晶圆(高级)

板凳
 

好吧,先HELP,看看有没有看门狗的测试程序。然后键入wdt_sample

 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表