历史上的今天
今天是:2025年01月30日(星期四)
2020年01月30日 | 关于PIC单片机SLEEP指令
2020-01-30 来源:eefocus
之前一直没有真正理解sleep指令,最近在做智能水表的产品的时候,用了一款8位的单片机PIC16F690,当看到程序中的sleep指令时以为执行后cpu还会工作,导致一些认识上的错误,在网上搜索了一下,找到了一篇关于sleep的详细说明文章,现收集下来以便以后查询!
在执行SLEEP指令后进入睡眠省电模式。进入SLEEP模式后,主振荡停止,如果看门狗在烧写时打开了,看门狗定时器将被清并保持运行。I/O 口,周边模块和内部RAM将保持原来状态,所以如果要求睡眠后有很低功耗,应该在进入SLEEP前把IO口置为高阻抗的输入状态,不用的模块也要关闭。另有些周边模块与主时钟有关,如在异步模式下的USART,将不工作。
唤醒SLEEP的条件有很多,如IO口电平变化,AD转换结束,外部复位、看门狗溢出等,具体请参考数据手册。当执行SLEEP指令时,PC+1 的指令被预取指,当器件被一个中断条件唤醒时(这个中断的应是已使能的),如果GIE(全局中断使能位)为0,器件将继续执行SLEEP指令下面的指令。如果GIE为1,器件将执行已预取的PC+1指令后跳到0004H的中断入口。所以建议SLEEP后面紧跟着的一条指令最好是个NOP。外部手动复位 MCLR将唤醒器件并RESET,表示状态的标志位含义详见数据手册。看门狗定时器在SLEEP下溢出将唤醒器件,然后执行SLEEP下面的指令,也有标志位指示状态。
史海拾趣
|
接入信号发生器老不能正常显示频率,因此我把程序简化再简化。。。最后就让信号发生器来一个高脉冲,计数器就加1,但是即使如此数码管上的数还是乱跳。。。我都不知道是什么问题。。。数码管显示程序是无问题的,因为我在其他程序中用过。 我把程 ...… 查看全部问答> |
|
【开创纪元】真的有优势?欢迎讨论:一种新的Super-Zigbee无线通信模块? 大家觉得这个技术如何? 几年来经过不同领域用户的实际使用和改进,SL系列Super-Zigbee直序扩频无线通信模块已经变得相当成熟,得到用户的广泛认可和高度评价,同时,我们越来越深地感觉到我们新一代产品相对于老产品的巨大优势: (一) 首先,43 ...… 查看全部问答> |
|
现在用岭仪的WIFI 硬件平台为PXA270 接口为SPI 目前系统初始化完SPI,然后读WIFI的ID可以正常通过 但是到加载固件时 函数static int sbi_download_wlan_fw_image(const u8 *firmware, int firmwarelen)下 有时: do { tmp++; Ndi ...… 查看全部问答> |
|
用例子的-c系列改的,原来是uart2该为串口1, 用超级终端看不到反应了,改用其他串口工具,看到乱码。 用-b系列改,能看到串口,可操作,但是烧写flash后没反应 我想-b和-c因为flash不同可能有所不同,但是只发现pagesize和flashsize上有不 ...… 查看全部问答> |
|
上次想购买块《MSP430 LaunchPad》开发板,可以没有排上,呵呵,这次太好了。 计划:做一个远程管理控制器,可以对设备的参数进行调整。… 查看全部问答> |
|
Beaglebone在CCSv5下Connect Target出现错误提示,但还能照常下载程序? 在把需要设置的都设置好后,最后Connect Target的时候出现提示: 然后试试LOAD程序到板子里,居然可以正常运行,能够但不运行。 不知道上面的红色提示是怎么回事?… 查看全部问答> |




