您现在的位置是:网站首页> 硬件

外部中断唤醒

  • 硬件
  • 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 中断

Top