发 帖  
原厂入驻New
[问答] 看门狗timeout问题
79 看门狗 WDT
分享
嗨,我用PIC16F87设备和MPLAB X与XC8。当WDT重置设备时,我可以在变量窗口中看到_u timeout在第一次启动时是1,当发生WDT时为0。但是代码没有回应。我用这个测试它:即使当变量窗口中的_u resetbits、u powerdown和_u timeout显示为1时,代码也被跳过。我还设置了“Backup reset.s标志”(尽管根据手册,这应该不是必须的)。问候,CJ。
0
2019-9-12 08:10:19   评论 分享淘帖 邀请回答
3个回答
不能。C运行时启动代码会破坏STATUS寄存器。u resetbits、u powerdown和_u timeout ARE编译器变量,并且手册特别告诉您以这种方式使用它们。请参阅XC8手册中的5.101.4状态寄存器保存,您没有提到您使用的XC8版本。只有最新的版本才“没有必要”手动启用它。您的代码从不读取“i”变量,所以如果您不将其声明为“volatile”,编译器可以自由地优化它。
2019-9-12 08:31:58 评论

举报

嗨,刚才有一个bug报告在几天前出现在这个问题上。外部位对象存在一个银行选择问题。选择所需存储库的代码没有考虑对象的地址是位地址(而不是字节地址),因此它选择了错误的存储库。您将能够使用resetbits对象并从该对象中屏蔽位,但是使用单独的位对象本身可能会有问题。
2019-9-12 09:20:23 评论

举报

嗨,杰夫,好的,这就解释了这个问题。幸运的是,RealSeTeBIT工作,所以程序也将工作。谢谢和问候,CJ。
2019-9-12 09:31:16 评论

举报

只有小组成员才能发言,加入小组>>

54个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /10 下一条

快速回复 返回顶部 返回列表