完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
这是官方的示例代码,不完整。有些内容还没填,有没有完整的。
#include #include <ti/drivers/watchdog/WatchdogCC26XX.h> #include void selfTestCallback(void); //如果整个系统正常,则返回true bool runSelfTest(void) [ return true; ] //=====看门狗回调函数======= void wdtCallback(UArg handle) [ Watchdog_clear((Watchdog_Handle)handle); ] //从Supervisor任务运行一次 void initializeSupervisor() [ // 1.在INT_WATCHDOG中断上注册watchdogHandler Watchdog_Params wp; Watchdog_Handle watchdog; // 2. 注册自检回调以比看门狗超时更频繁地运行 Watchdog_Params_init(&wp); wp.callbackFxn = wdtCallback;// 回调看门狗 wp.debugStallMode = Watchdog_DEBUG_STALL_ON; wp.resetMode = Watchdog_RESET_ON; // 3. 允许看门狗复位系统 WatchdogResetEnable(); // 4. 第一次到达零时设置重载值 WatchdogReloadSet(1500000); /* Set to 1 second, as Watchdog runs at 48MHz / 32 = 1.5MHz */ // 5. 启用并启动看门狗 WatchdogEnable(); ] //监督任务的主体 void supervisorTask() [ static bool systemOk; while(1) [ events = Event_pend(supervisorEvent, 0, PERIODIC_SUPERVISOR_CHECK | WATCHDOG_EVENT, BIOS_WAIT_FOREVER); if(events & PERIODIC_SUPERVISOR_CHECK) [ //运行自检以查看一切是否正常 systemOk = runSelfTest(); if(systemOk) [ //如果一切正常,清除中断,如果有的话,并复位看门狗定时器 WatchdogIntClear(); //清除等待中断状态标志 watchdogPending = 0; ] else [ //一切都不好,处理这个! //如果这可以恢复,然后调用WatchdogIntClear并将watchdogPending设置为零 ] ] if(events & WATCHDOG_EVENT) [ //看看为什么看门狗被触发没有自检运行ok! //如果这可以恢复,然后调用WatchdogIntClear并将watchdogPending设置为零 ] ] ] //这个回调应该比配置的看门狗超时更频繁地运行,以便它有时间进行自检和启动看门狗 void selfTestCallback(void) [ // Run self-test Event_post(supervisorEvent, PERIODIC_SUPERVISOR_CHECK); ] //看门狗第一次超时时,看门狗中断运行,然后复位看门狗。 //如果中断标志在第二次超时之前未被清除,则芯片复位,只要配置了WatchdogResetEnable()。 void watchdogHandler(void) [ //清除看门狗超时一次 WatchdogIntClear(); //检查看门狗中断是否已经运行一次 if(watchdogPending) [ //如果是这样,挂起并等待即将复位 while(1); ] else [ //标志我们已经运行了看门狗中断一次 watchdogPending = 1; //通知主管 Event_post(supervisorEvent, WATCHDOG_EVENT); ] ] |
|
相关推荐
1个回答
|
|
TI RTOS里面有,请看这边: https://e2e.ti.com/support/wireless_connectivity/proprietary_sub_1_ghz_simpliciti/f/156/t/529212
|
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
387 浏览 2 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
580 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1034 浏览 1 评论
691 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
504 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
139浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
108浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
115浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
112浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
146浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 10:39 , Processed in 0.655125 second(s), Total 44, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号