47 lines
890 B
C++
Executable File
47 lines
890 B
C++
Executable File
|
|
#include <avr/io.h>
|
|
#include <util/delay.h>
|
|
#include <avr/sleep.h>
|
|
#include <avr/power.h>
|
|
|
|
const int ledPin = 4; //1;
|
|
|
|
//#define F_CPU 16000000UL
|
|
|
|
void sleepNow() {
|
|
{
|
|
// BODCR |= (1<<BODS)|(1<<BODSE); //Disable Brown Out Detector Control Register
|
|
ACSR |= (1<<ACD); //Analog comparator off
|
|
ACSR = ADMUX = ADCSRA = 0;
|
|
}
|
|
|
|
WDTCR |= (1<<WDP3) ; //Watchdog set for about 4 seconds
|
|
|
|
// Enable watchdog timer interrupts
|
|
WDTCR |= (1<<WDTIE);
|
|
sei(); // Enable global interrupts
|
|
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
|
|
sleep_mode();
|
|
sleep_disable();
|
|
}
|
|
|
|
void setup() {
|
|
DDRB = 0b000001; // all but PB0 INPUT, want to use PB0 ...
|
|
PORTB = 0b000000; // all LOW
|
|
|
|
pinMode(ledPin, OUTPUT);
|
|
digitalWrite(ledPin, LOW);
|
|
}
|
|
|
|
|
|
void loop() {
|
|
digitalWrite(ledPin, HIGH);
|
|
_delay_ms(10);
|
|
|
|
digitalWrite(ledPin, LOW);
|
|
// _delay_ms(300);
|
|
|
|
sleepNow();
|
|
|
|
}
|