原创 AVR单片机学习之(一)——休眠方式(Sleep Modes)设定

2008-7-9 22:21 8290 4 7 分类: MCU/ 嵌入式
当需要使用休眠方式时,只要包含头文件“AVR/sleep.h”即可轻松实现。(基于AVR-Studio 4.0+ AVR-GCC,单片机型号:ATtiny24)
使用详细步骤如下:
1)      包含该头文件AVR/sleep.h;
2)      定义睡眠模式;
如:set_sleep_mode(SLEEP_MODE_ADC)//表示将CPU设置成ADC Noise Cancler模式
其它睡眠模式可在sleep.h头文件中找到,一般有:SLEEP_MODE_IDLESLEEP_MODE_ADCSLEEP_MODE_PWR_DOWN等。
3)      关全局中断;                             //cli();
4)      睡眠模式允许;                          //sleep_enable();
5)      开全局中断;                             //sei();
6)      进入睡眠模式;                          //sleep_cpu();
7)      等待中断将CPU唤醒
8)      CPU唤醒后禁止睡眠模式;        //sleep_disable();
完整的代码如下:
/*应用程序代码*/
set_sleep_mode(SLEEP_MODE_ADC)/*为提高AD转换精度,在转换时将CPU设置成ADC Noise Cancler模式*/
cli();                                                        //关全局中断
sleep_enable();                                    //CPU睡眠允许
sei();                                                      //开全局中断
/*允许ADC中断*/
/*启动AD转换*/
sleep_cpu();                  /*启动AD后,CPU马上进入睡眠模式(ADC Noise Cancler),等待AD转换结束,产生ADC中断而将CPU唤醒*/
sleep_disable();             //CPU唤醒后从ADC中断返回,并接着从这里执行指令,禁止睡眠模式,b.gif
PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户1821401 2015-7-28 10:35

中断唤醒是指的在中断服务函数里 写sleep_disable(); ?

用户1675267 2014-5-6 09:36

谢谢你的思路,我按照你的成功了! 休眠后成功唤醒!

用户1524156 2009-10-27 08:58

很好的东西
相关推荐阅读
用户131336 2008-07-10 20:11
自制单键脱机下载器
    走入Linux的殿堂已经有一年有余了,在这里我想将Linux的各种实现机制分析一遍,一方面对自己来说也是温故而知新,另一方面,促进大家的交流,最好能够给大家一些抛砖引玉的启迪。我是硬件出身,搞...
我要评论
3
4
关闭 站长推荐上一条 /3 下一条