完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在使用PIC16LF18325,我的设备进入睡眠,醒来在一个8秒看门狗定时器。我的问题是,我想继续使用WDT来唤醒PIC,但是我也希望如果PIC上的引脚被拉高,那么它就会唤醒。当PIC被拉高时,这个中断引脚是完全随机的。当它被拉高时,设备应该打开,然后重置WDT。我对这两种技术都很陌生,我甚至不确定你们能否同时做到这两项。我想知道有没有人能在我返回数据表时指出我正确的方向。谢谢。
|
|
相关推荐
11个回答
|
|
“.”原因之外的WDT超时被设置,“.”原因内的WDT超时导致执行以下语句。在WDT超时时,NOT_TO位(STATUS寄存器)被清除。
|
|
|
|
启用IOC中断对该引脚,并设置为触发在积极的边缘睡觉前。当从睡眠中醒来时,清除它的IOC标志并清除看门狗定时器。
|
|
|
|
***
|
|
|
|
因此,使用MCC,我已经在PIN RC3 FPR上设置了IOC,这是一个积极的变化。如果IOCCF组(IOCCFbits.IOCCF3==1){IOCCFbits.IOCCF3=0;//在这里为Pin-RC3}添加处理程序代码}则自动创建以下代码:void PIN_MANAGER_IOC(void){//在更改时中断。当我高举PIN时,它似乎并没有进入休眠函数并运行其余代码。
|
|
|
|
不,它没有。只清除中断标志。将代码放在休眠指令周围。
|
|
|
|
你好,我已经让它从睡眠中唤醒,但是由于某种原因,它似乎正在运行完整的空主程序,而不是在睡眠的while循环中。以下是我的一些代码:在中断代码中,我希望将WDT更改为更快的时间,然后将全局变量ttemp更改为值1,以指示发生了中断。在我的代码中,最后发生的事情是,在将WDT更改为更快的时间并完成睡眠之后,它完全运行在整个Void.(void)中,而不是在应该继续的时间内(1)。
|
|
|
|
我想你是在找茬儿。这看起来像一个非常简单的代码,所以我建议您删除所有与IOC和WDT无关的代码,并使其首先工作。你需要在睡觉前和ISR中清除IOC标志,否则它会不断地回到ISR。并在您的PIC数据表中查找IOCP注册。
|
|
|
|
IOC不会重置您的PIC设备;但是,正如Jolibob所提到的,WDT超时而不处于睡眠模式_将_重置您的设备。所以,如果你要使用看门狗,你必须不时地踢狗。;)
|
|
|
|
或禁用WDT而不在睡眠中。
|
|
|
|
@ OP:为此,您必须设置配置位,这样WDT由WDTCon寄存器中的SWDTEN位控制。
|
|
|
|
大家好,这是一个WDT的复合重置芯片,因为它无限地卡在中断向量中,因为我需要清除其中的标志。谢谢,它现在工作得很好。
|
|
|
|
只有小组成员才能发言,加入小组>>
5178 浏览 9 评论
2003 浏览 8 评论
1931 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3177 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2228 浏览 5 评论
737浏览 1评论
622浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
509浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
635浏览 0评论
533浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 11:19 , Processed in 1.389817 second(s), Total 67, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号