есть устройство, в котором требует организовать возможность поддержки работы контроллера на 2-3 секунды, сейчас удается, с помошью ниже приведенного кода, обеспечить время работы порядка 1сек.
Контроллер запитан от LDO (LD1117S33C), на входе стоит LDO кондер на 470мкФ.
Что я не так делаю?
//
// SLEEP. Спи, тебе говорят !!!
//
MCUCR |= 0x20; // POWER DOWN -> вылетаем по WatchDog
MCUCR |= 0x80; // Sleep //
// отключаем управление светодиодами
//
PORTB |= BIT(ThisVCC);
PORTB |= BIT(LedNorma)|BIT(LedAkkum);
PORTB &=~BIT(OnAcc); // Аккумулятор разряжен - надо выключить
//
// несмотря на Power Down сами отключаем компоратор и АЦП и TWI
//
ACSR |= BIT(ACD);
ADCSR &=~ BIT(ADEN);
TWCR &= 0x04; // бит TWEN
//
// Запрещаем преывания (в надежде что контроллер прерывания отключится :)) и WDT
//
SREG &=~ 0x80;
WDTCR &=~ BIT(WDE);
asm("nop");
asm("nop");
PORTC |= BIT(SHORT); // замкнули линию
asm("sleep");