[PIC®/AVR®/dsPIC®产品] 不会循环在while(1)中

[复制链接]
548|9
 楼主| wenfen 发表于 2022-11-25 20:45 | 显示全部楼层 |阅读模式
看门狗开启,器件唤醒之后会复位从0000h开始执行,而不会循环在while(1)中,请问各位?
void main()
{
  TRISD=0X00;
  LATD=0X01;
while(1)
{
  WDTCONbits.WDTPS=0b01100;             //4s定时
  WDTCONbits.SWDTEN=1;                     //开启看门狗
   SLEEP();
   nop();
   LATD=0XFF;
}
}
zwll 发表于 2022-11-25 20:54 | 显示全部楼层
这是什么问题?自己都不知道自己 想说啥
dingy 发表于 2022-11-25 20:56 | 显示全部楼层
开启了看门狗在睡眠下继续工作,看门狗超时复位,自然是从0000H执行了,看门狗复位和上电复位类似
llljh 发表于 2022-11-25 20:58 | 显示全部楼层

都复位了,你还想从哪儿运行
xxrs 发表于 2022-11-25 21:00 | 显示全部楼层
你可以在main开始弄个复位类型判断,让它直接跳转到while。
zhenykun 发表于 2022-11-25 21:01 | 显示全部楼层
每种串口都对应一个标志位的。
songqian17 发表于 2022-11-25 21:03 | 显示全部楼层
睡眠模式下,看门狗溢出,从SLEEP()下一条指令开始执行
dingy 发表于 2022-11-25 21:05 | 显示全部楼层
你这是复位吧,不是唤醒啊
zhuhuis 发表于 2022-11-25 21:07 | 显示全部楼层
器件型号?有的器件sleep唤醒是从0开始,有的是下一条,你要看休眠唤醒那一章怎么说的
 楼主| wenfen 发表于 2022-11-25 21:09 | 显示全部楼层
明白了,多谢大家讨论这么多哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

737

主题

8940

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部