1.休眠操作
只要执行 asm("SLEEP");或者 SLEEP即可;
2 休眠之后gpio状态
休眠后保持GPIO的状态
3 唤醒之后程序从哪里开始执行
一般MCLR唤醒是复位 从新开始执行程序
其他的都是如果某项能唤醒单片机的中断已经开了,当总中断允许位GIE为1的时候,单片机被唤醒后可以进入中断程序中去,而当GIE位为0的时候,单片机也可以被唤醒,但是是执行下面的语句,而不能进入中断程序中去。
4 我们怎么判断是上电复位还是SLEEP后复位
STATUS上有两个位 TO、PD,
当标志位TO=1时,表示表示已经操作了上电复位或者是执行了CLRWDT或者SLEEP指令,
当TO=0时,表示发生了看门狗复位。
当标志位PD=1时表示操作了上电复位或者是执行了CLRWDT指令,
当PD=0时,表示执行了SLEEP指令。
SLEEP指令之后复位 时候 T0=1 PD=0
PCON上有两个标志位是POR和BOR,分别表示的是上电复位和欠压复位标志。
5复位唤醒时我们的RAM怎么处理的
编译的时候clear bss打开,编译系统编译的时候会在初始化之前自动加上一些对RAM清零的代码,这样每次复位都会把RAM数据都清零,我用的是PICC 9.8
编译的时候clear bss不打开我们保持我们原来的值.