搜索
bottom↓
回复: 6

关于重复进入睡眠模式的问题

[复制链接]

出0入0汤圆

发表于 2009-8-14 20:23:54 | 显示全部楼层 |阅读模式
关于重复进入睡眠模式的问题
我写了一个很简单的程序,本意想mcu循环进入睡眠模式。可是只能进入一次,想请各位avr爱好者给我指点指点。
#include<iom16v.h>
#include<macros.h>
#include<sleep.h>
#pragma interrupt_handler int1_:3
unsigned int num=0;
void delay_nms(unsigned int t)
{
unsigned int i,j;
for(i=0;i<t;i++)
          for(j=0;j<1141;j++);
}
void main()
{
unsigned int i,j;
DDRB=0XFF;
PORTB=0XFE;

MCUCR|=BIT(SE)|BIT(ISC11);
MCUCR=(0<<SM2)|(1<<SM1)|(0<<SM0);    //设定为掉电模式
GICR|=BIT(INT1);
SREG|=BIT(7);
//asm("sleep");
while(1)
{
  delay_nms(1000);
        MCUCR=(0<<SM2)|(1<<SM1)|(0<<SM0);    //设定为掉电模式
  asm("sleep");
  for(i=0;i<num;i++)
          for(j=0;j<1141;j++)
            PORTB=0XFF;
                     
}

}
void int1_()
{
  num=5;
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2009-8-15 11:40:46 | 显示全部楼层
上面的程序有问题,通过努力已经把睡眠模式写好了。
调试没问题了,现在拿出来共享!
#include<iom16v.h>
#include<macros.h>
#pragma interrupt_handler int1_:3
unsigned int num=0;
void delay_nms(unsigned int t)
{
unsigned int i,j;
for(i=0;i<t;i++)
          for(j=0;j<1141;j++);
}
//=================================
void sleep_mode()//睡眠模式函数
{

MCUCR=BIT(SM1);    //设定为掉电模式
MCUCR|=BIT(SE);//sleep必须紧跟其后
asm("sleep");//进入睡眠状态
}
//================================
void main()
{
unsigned int i,j;
DDRB=0XFF;
PORTB=0XFF;
MCUCR|=BIT(ISC11);//外部中断下降沿触发
GICR|=BIT(INT1);
SREG|=BIT(7);
while(1)
{
  PORTB=0XFF;
  delay_nms(1000);
        sleep_mode();
        //NOP();
        PORTB=0XFE;
        delay_nms(1000);                     
}

}
//========================
void int1_()//只是用来唤醒mcu,没有其它意义
{
  num=5;
}

出0入0汤圆

 楼主| 发表于 2009-8-28 20:51:01 | 显示全部楼层
呵呵,来了,看看自己的帖子

出0入0汤圆

发表于 2009-8-29 11:32:00 | 显示全部楼层
这到好。。。做笔记啊。。。
不过这有好多人都这样干的。。。呵呵

出0入0汤圆

发表于 2009-9-4 12:01:53 | 显示全部楼层
请问如何用定时器唤醒??!!只能用定时器2的异步时钟吗??

出0入0汤圆

 楼主| 发表于 2009-9-7 20:15:59 | 显示全部楼层
不是的,不同的模式,唤醒方式不一样,你好好看看数据手册啦!很简单的

出0入0汤圆

发表于 2010-3-23 18:40:28 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 15:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表