完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
大家好!新手发帖。
近期使用C8051F930单片机做了个小系统,但系统不稳定,跑一段时间后就会自动复位。 首先我可以肯定看门狗我已经关了。 另外,在意外复位时,通过查看复位源寄存器中的FERROR位及PORSF位,发现PORSF为0,而FERROR为1,这也就意味着这是一个flash错误导致的复位。但第一次遇到此类问题,实在有些不知如何下手。对代码也是一段一段的试,发现有一个可疑函数调用,注释掉后不再复位,但实在想不明白其根本原因在何处。贴出来给各位看看,看出了代码的问题还请不吝赐教,能给出建议鄙人不胜感激。谢谢!^_^ #define timerval_ticks(tv) (*(uint32_t*)((tv)->resv+0)) #define timerval_thtlv(tv) (*(uint16_t*)((tv)->resv+4)) interval_t timerval_interval(const struct timerval *lhs, const struct timerval *rhs) { uint32_t pdata diff = 0; diff = timerval_ticks(lhs)-timerval_ticks(rhs); diff <<= 16; diff += timerval_thtlv(lhs); diff -= timerval_thtlv(rhs); return diff*48/25; } void function_name(){ interval_t tn=0; ... //即此处调用 tn = timerval_interval(now, &_last);//now与_last为从TIMER获得的时间值。 ... } |
|
相关推荐
3个回答
|
|
|
PS: timerval_interval函数是用来取时间差的。
|
|
|
|
|
|
gser.glksehgj
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
506 浏览 0 评论
607 浏览 0 评论
837 浏览 0 评论
832 浏览 0 评论
RT-Thread与英飞凌(infineon)合作得板子PSOC 6 板子学习
768 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
17058 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-14 05:18 , Processed in 0.984537 second(s), Total 44, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1941