kingman 发表于 2009-4-18 18:05:22

一个关于12F629进行睡眠和唤醒的例子

醒方式为IO口跳变中断唤醒。      GIE=0;                     //关总中断,这样如果唤醒后会继续执行,不会跳入中断
       /*SET IOCODE*/   //不用的IO做输出,减小SLEEP电流
      ??   =GPIO;             //这一句的作用是读GPIO,如果不读一次可能导致自动唤醒
                                     //可以把GPIO赋给任何过期的变量,只要读它就可以,因为读一次会使数据锁存,IO跳变中断是用读入的值和上一次锁存的值进行比较。
                           
      GPIE=1;               //使能引脚电平变化中断
      IOCB=0X??;          //使能引脚电平变化中断
      GPIF=0;                //确保中断标志为0
      SLEEP();            //睡眠..zz..zzz..zzzz
      NOP();
      NOP();
      asm("GOTO 0000H");   //等效于复位,PC-->0X0000
页: [1]
查看完整版本: 一个关于12F629进行睡眠和唤醒的例子