完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
S32K144测试看门狗模块
看门狗的测试采用初始化看门狗定时器及超时计数器后,在一个较长时间不喂狗,看芯片是否复位。测试的难度在于时钟的选择以及复位效果的观察。 S32K144看门狗计数器是16位的,也就是最大计数可以到65532。如果选择一个较高的时钟会导致芯片很快复位,无法观察实际效果。所以建议选择低速LPO时钟,将LPO时钟配置成1K,最大喂狗时间可以设置到63s左右。 LPO时钟配置成1K 看门狗选择LPO时钟 生成的看门狗通用代码如下: wdog_user_config_t watchdog1_Config0 = { .clkSource = WDOG_LPO_CLOCK, .opMode = { false, /* Wait Mode*/ false, /* Stop Mode*/ false /* Debug Mode*/ }, .updateEnable = true, .intEnable = false, .winEnable = false, .windowValue = 0, .timeoutValue = 64000, .prescalerEnable = false }; 提供初始化及测试接口 /*********************************************************************************** Function: void watchdog_init(uint16_t timems) Description: 初始化看门狗 Input: time 配置看门狗超时计数值,最大为65532 Output: NONE Return: NONE Others: NONE ************************************************************************************/ void watchdog_init(uint16_t timems) { //配置看门狗超时计数值,最大为65532 uint16_t timeval = timems*WDG_MS_PERIOD; if(timeval》65532) timeval=65532; watchdog1_Config0.timeoutValue = timeval; //初始化看门狗 WDOG_DRV_Init(INST_WATCHDOG1, &watchdog1_Config0); //启动看门狗 WDOG_DRV_Trigger(INST_WATCHDOG1); } //喂狗接口 void feed_dog_hal(void) { //重置看门狗定时器 WDOG_DRV_Trigger(INST_WATCHDOG1); } 测试过程,由于看门狗生效后芯片会重启,所以无法仿真,设计了一段代码,通过打印来观察实际的芯片重启效果。连续打印10次后,进入while等待,直到喂狗计数器溢出,芯片重启,再次进行打印… int main() { //。..。.. //看门狗测试 1s后超时 watchdog_init(1000); while(1) { //测试看门狗 count++; my_printf(“The current testvalue is %dn”, count); if(count%10==0){ //让程序超时不喂狗 my_printf(“I will make a default to stop this process!! rn”); while(1) { //尝试喂狗 //feed_dog_hal(); } } } } 如果在while等待中加入喂狗程序,可以发现打印10次之后,程序一直在while中等待,没有再次打印,如果在线仿真,可以发现仿真没有断开。完成测试。 |
|
|
|
只有小组成员才能发言,加入小组>>
3842个成员聚集在这个小组
加入小组3071 浏览 0 评论
航顺(HK)联合电子发烧友推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4050 浏览 1 评论
4041 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-16 16:58 , Processed in 0.626098 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号