Arduino 编程技巧 睡眠模式的运用 2个AA电池运行一年的秘密(未完待续)
来源:互联网 发布:vscode markdown 编辑:程序博客网 时间:2024/06/05 19:21
下载库文件
睡眠模式
以下表格,转载自睡眠模式
Energy指令
中文直譯
消耗電流
Idle
Idle()
閒置
15mA
ADC Noise Reduction
SleepADC()
類比數位轉換器降低雜訊
6.5mA
Power-save
PowerSave()
省電
1.62mA
Standby
Standby()
待機
1.62mA
Extended Standby
延長待機
0.84mA
Power-down
PowerDown()
斷電(关机)
0.36mA
空闲模式Idle
当SM2..0 为000 时, SLEEP 指令将使MCU 进入空闲模式。在此模式下,CPU 停止运
行,而SPI、USART、模拟比较器、ADC、两线串行接口、定时器/ 计数器、看门狗和
中断系统继续工作。这个睡眠模式只停止了clkCPU 和clkFLASH,其他时钟则继续工作。
象定时器溢出与USART 传输完成等内外部中断都可以唤醒MCU。如果不需要从模拟比
较器中断唤醒MCU,为了减少功耗,可以切断比较器的电源。方法是置位模拟比较器控
制和状态寄存器ACSR 的ACD。如果ADC 使能,进入此模式后将自动启动一次转换。
ADC 噪声抑制模式ADC Noise Reduction
当SM2..0 为001 时, SLEEP 指令将使MCU 进入噪声抑制模式。在此模式下,CPU 停
止运行,而ADC、外部中断、两线接口地址配置、定时器/ 计数器2 和看门狗继续工作。
这个睡眠模式只停止了clkI/O、clkCPU 和clkFLASH,其他时钟则继续工作。
此模式提高了ADC 的噪声环境,使得转换精度更高。ADC 使能的时候,进入此模式将
自动启动一次AD 转换。ADC 转换结束中断、外部复位、看门狗复位、BOD 复位、两线
接口地址匹配中断、定时器/ 计数器2 中断、SPM/EEPROM 准备好中断、外部电平中断
INT0 或INT1,或外部中断INT2 可以将MCU 从ADC 噪声抑制模式唤醒。
掉电模式
当SM2..0 为010 时, SLEEP 指令将使MCU 进入掉电模式。在此模式下,外部晶体停
振,而外部中断、两线接口地址匹配及看门狗(如果使能的话)继续工作。只有外部复
位、看门狗复位、BOD 复位、两线接口地址匹配中断、外部电平中断INT0 或INT1,或
外部中断INT2 可以使MCU 脱离掉电模式。这个睡眠模式停止了所有的时钟,只有异步
模块可以继续工作。
省电模式
当SM2..0 为011 时, SLEEP 指令将使MCU 进入省电模式。这一模式与掉电模式只有
一点不同:
如果定时器/ 计数器2 为异步驱动,即寄存器ASSR 的AS2 置位,则定时器/ 计数器2 在
睡眠时继续运行。除了掉电模式的唤醒方式,定时器/ 计数器2 的溢出中断和比较匹配中
断也可以将MCU 从休眠方式唤醒,只要TIMSK 使能了这些中断,而且SREG 的全局中
断使能位I 置位。
如果异步定时器不是异步驱动的,建议使用掉电模式,而不是省电模式。因为在省电模式
下,若AS2 为0,则MCU 唤醒后异步定时器的寄存器数值是没有定义的。
这个睡眠模式停止了除clkASY 以外所有的时钟,只有异步模块可以继续工作。
Standby 模式
当SM2..0 为110 时, SLEEP 指令将使MCU 进入Standby 模式。这一模式与掉电模式
唯一的不同之处在于振荡器继续工作。其唤醒时间只需要6 个时钟周期。
扩展Standby 模式
当SM2..0 为111 时, SLEEP 指令将使MCU 进入扩展的Standby 模式。这一模式与省
掉电模式唯一的不同之处在于振荡器继续工作。其唤醒时间只需要6 个时钟周期。
- Arduino 编程技巧 睡眠模式的运用 2个AA电池运行一年的秘密(未完待续)
- Android Studio的调试技巧 (未完待续)
- Eclipse的一些技巧以及快捷键(未完待续)
- Qt使用的一些技巧(未完待续。。。)
- 线程的创建和运行(未完待续)
- Java 设计模式的学习(含代码),未完待续
- 追求最强的vim(未完待续)
- 喜欢的公司一览表(未完待续)
- android适配器的概念(未完待续)
- 顺序表的操作(未完待续)
- 链表的操作(未完待续)
- APNS的理解(未完待续)
- 合格的程序员(未完待续)
- 合格的程序员(未完待续)
- 你想要的、资小料~(未完待续。。)
- Java虚拟机的结构(未完待续)
- java的基础语法(未完待续)
- uboot环境变量的设置(未完待续)
- 学习日记//harshtable
- java多线程:ExecutorService多线程实例(六)
- 腾讯2017暑期实习生编程题(三)----有趣的数字
- springmvc的工作流程
- AKOJ -- 1529 -- 寻找最大数
- Arduino 编程技巧 睡眠模式的运用 2个AA电池运行一年的秘密(未完待续)
- MYSQL
- Intellij Idea 使用技巧
- Win32API学习笔记第七章(三)
- Arduino Uno 无声无息的开关 固态继电器(四引脚)的实验
- pagehelper连接查询分页问题
- Android如何去掉顶部标题栏
- EasyNVR实现网页/微信播放RTSP摄像机HLS直播时出现起播等待问题的优化过程
- 在eclipse中添加新的tomcat,没法添加,next按钮呈灰色,点击不了