
Potřebuji, aby po zapnutí napíjení HNED usnul, spinkal a nepapal moc.
Ale jakmile mu na nějaký vstup dám třeba High, tak aby okamžitě do 1-2 ms začal makat.
Jde to?
Kód: Vybrat vše
// Priklad hlubokeho SLEEP rezimu a probuzeni pres FALLING hranu na D2
//==================================================================================================
// Nastavení FUSE bajtu v ATmega328:
// LFuse = 0xFF
// HFuse = 0xDF
// EFuse = 0x07
//==================================================================================================
#include <avr/sleep.h>
//==================================================================================================
// Podprogram pro "interrupt" kontaktem pri otevirani dveri. (aktivuje se sestupnou hranou na D2)
void dvere()
{
sleep_disable();
detachInterrupt (0);
}
//==================================================================================================
//==================================================================================================
void setup(void)
{
for (byte i = 0; i <= A5; i++) // Kvuli snizeni spotreby ve sleep rezimu vsechny piny nastavit na vystup a stahnout do LOW ...
{
pinMode (i, OUTPUT);
digitalWrite (i, LOW);
}
pinMode (2, INPUT_PULLUP); // ... krome kontaktu na dverich, ktery slouzi k probuzeni z rezimu spanku.
}
//==================================================================================================
//==================================================================================================
// HLAVNI SMYCKA
void loop(void)
{
//-------------------------------------------------------------------------------------
// hned po startu se procesor uspi do stavu s minimalnim odberem (kolem 6uA)
// (opsano a upraveno z: http://www.gammon.com.au/power )
ADCSRA = 0;
set_sleep_mode (SLEEP_MODE_PWR_DOWN);
noInterrupts (); // timed sequence follows
attachInterrupt (0, dvere, FALLING);
EIFR = bit (INTF0); // clear flag for interrupt 0
sleep_enable();
interrupts (); // guarantees next instruction executed
sleep_cpu (); // sleep within 3 clock cycles of above
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
// V tomto miste ceka procesor na probuzeni pomoci sestupne hrany na pinu D2 (kontakt na dverich).
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
// tady bude kod, ktery se ma vykonat po probuzeni
//
//
//-------------------------------------------------------------------------------------
} // Konec hlavni smycky, na zacatku nasledujici smycky se zase uspi.
//==================================================================================================
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host