请问mega16掉电唤醒后程序重什么地方运行?
时间:10-02
整理:3721RD
点击:
#include <iom16v.h>
#include <macros.h>
uchar i;
void main()
{
DDRC=0XFF;//C口输出
PORTC=0X00;//点亮LED
DDRD&=0<<PD3;//外中断1口,PD3输入
PORTD|=1<<PD3;//有上拉电阻,
while(1)
{
i++
if(i==100) //延时后进入休眠模式
{
SEI();// 开全局中断
GICR=0X80;//外部中断1使能
MCUCR=(1<<SE)|(1<<SM1);//开启掉电模式1
asm("sleep");//进入掉电模式
PORTC=0XFF; //唤醒后熄LED
while(1);//程序最后停在此处
}
}
}
程序能够进入掉电,但是按中断1唤醒后,又重头开始了(就象复位一样),程序的最后两行没有被执行?
#include <macros.h>
uchar i;
void main()
{
DDRC=0XFF;//C口输出
PORTC=0X00;//点亮LED
DDRD&=0<<PD3;//外中断1口,PD3输入
PORTD|=1<<PD3;//有上拉电阻,
while(1)
{
i++
if(i==100) //延时后进入休眠模式
{
SEI();// 开全局中断
GICR=0X80;//外部中断1使能
MCUCR=(1<<SE)|(1<<SM1);//开启掉电模式1
asm("sleep");//进入掉电模式
PORTC=0XFF; //唤醒后熄LED
while(1);//程序最后停在此处
}
}
}
程序能够进入掉电,但是按中断1唤醒后,又重头开始了(就象复位一样),程序的最后两行没有被执行?
复位电路没做好 熔丝位设置好了没有 //PWM输出程序 //在端口PD4,PD5(led5,led6)输出PWM脉冲,可用示波器测量,或者外加一LED灯,可以看到LED由于脉宽的变化引起的灯的亮度不同