您现在的位置是:网站首页> 硬件
外部中断唤醒
- 硬件
- 2021-09-19
- 732人已阅读
#include <avr/wdt.h>
#include <avr/sleep.h>
int ledPin = 13;
int bsleep=0;
int nn=0;
void setup()
{
Serial.begin(9600);
Serial.print("start\r\n");
pinMode(ledPin, OUTPUT);
set_sleep_mode(SLEEP_MODE_PWR_DOWN); //设置休眠模式。
sleep_enable(); //开启休眠功能。
digitalWrite(ledPin,HIGH);
///将中断触发引脚(2号引脚)设置为INPUT_PULLUP(输入上拉)模式
pinMode(2, INPUT_PULLUP);
attachInterrupt(0,hello,CHANGE);
sleep_cpu();
bsleep=0;
}
void loop()
{
Serial.print("run...\r\n");
// sleep_cpu();//进入休眠状态,从此处开始进入休眠。这里不需要喂狗。目的就是等狗超时后执行唤醒函数。
//delay(1000);
nn++;
if(nn>500)
{
bsleep=0;
sleep_enable(); //开启休眠功能。
sleep_cpu();
}
}
void hello()
{
Serial.print("up...\r\n");
if(bsleep==0)
{
sleep_disable();
nn=0;
}
bsleep=1;
}
上一篇:物联网硬件公司
下一篇:Ardunio 中断