搜索
bottom↓
回复: 6

贴片mega48 还是搞不清楚

[复制链接]

出0入0汤圆

发表于 2013-1-30 19:44:19 | 显示全部楼层 |阅读模式
使用AVRstudio + WINAVR

1. 插件的mega48  所有模式 程序完全正常

2. 贴片的mega48  相同程序
进入  “   SLEEP_MODE_IDLE   可以唤醒
进入
SLEEP_MODE_PWR_DOWN
SLEEP_MODE_PWR_SAVE
无法唤醒。

请指点,万分感谢。

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2013-1-30 19:46:04 | 显示全部楼层
/*

        测试程序


*/


#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <avr/sleep.h>
#include <avr/pgmspace.h>


void delay_10ms(unsigned int t)

{

        while(t--)

        _delay_ms(10);

}
#define RUN 0
#define DOWN 0
#define ALARM 5


void delay_us(void)
{
       
       

}

*/
unsigned char key_down_count;
unsigned char key_up_count;

volatile unsigned char temp_s;


int main(void)
{

        PORTC=0xFF;

        PORTD=0xFF;

        PORTB=0xFF;

        DDRB =(1<<RUN); //PB0设为输出高电平,灯灭
        DDRC =(1<<ALARM);
        DDRC |=(1<<DOWN);
       
        // 保证PD2 上拉输入
        DDRD &= ~(1<<2);
          
       
        EICRA = 1<<1;        // INT0 下降沿中断
        EIMSK = 1;        // 使能 INT0
       
        sei(); //开中断

        //Read_RTC();

        //temp_s = (l_tmpdisplay[0] + 30)%60 ;

        for(;;)
        {
                PORTB = 0xFE;

                delay_10ms(1);

                PORTB = 0xFF;

                delay_10ms(1);

                PORTC = 0xFE;

                delay_10ms(1);

                PORTC = 0xFF;

                delay_10ms(1);

                if(++i > 0xF0)
                {
               
                        i=0;

                        set_sleep_mode(SLEEP_MODE_IDLE); //设定为掉电模式

                        sleep_mode(); //进入睡眠状态       
               
               
                }
                 
       
        }
}




ISR(INT0_vect) //外部中断0服务程序 唤醒源
{

        unsigned char i;
        for(i=0; i<0x3F; i++)
        {               

                PORTC = 0xFE;

                delay_10ms(2);

                PORTC = 0xFF;

                delay_10ms(2);
        }
       
}

出0入0汤圆

发表于 2013-1-30 23:28:18 | 显示全部楼层
AVR掉电唤醒不了,好像是缺陷
头像被屏蔽

出0入0汤圆

发表于 2013-1-31 12:20:01 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2013-2-1 14:55:10 | 显示全部楼层
channe 发表于 2013-1-30 19:46
/*

        测试程序

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-2-1 14:56:10 | 显示全部楼层
手册上明确说了,在掉电模式时,只有电平中断能唤醒,下降沿是没用的

出0入0汤圆

发表于 2013-2-1 15:04:26 | 显示全部楼层
48PA已经发现很多和WINAVR不和谐了,比如WDT,用winavr的就不正常,我也搞不清楚那里的问题,都是按照例子来的,换成datasheet中直接操作寄存器的例子,就正常了.winavr好久没更新了,估计新器件支持度不够.
关键地方还是汇编靠谱.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-24 07:15

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

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