Все сделал - через WDT (оказалось куда проще чем думал), в 5 утра сбылось - запустил. Щас проверил вроде все нормально. Ток потребления 0.12 скачет до 0.9, надо еще через ключ питание на остальные компоненты сделать, а то 1307 0.11ma хавает, а используется раз в 10 минут... Да инициализацию регистров в проверку еще не убрал. В дальнейшем можно будет перейти на прерывание по будильнику
PCF8583, но с ней разбираться надо...
Огромное спасибо за помощь, всех кто откликнулся и особенно niXto и ForcePoint!
Сам процесс засыпания выглядит так (atmega 8 ) ;
DDRB = 0x00; // все выводы порта B сконфигурировать как входы.
PORTB = 0xFF; // с подтяжками
DDRC = 0x00; // все выводы порта C сконфигурировать как входы.
PORTC = 0xFF; // с подтяжками
DDRD = 0x00; // все выводы порта D сконфигурировать как входы
PORTD = 0xFF; // с подтяжками
MCUCR |= ((1‹‹SE)|(1‹‹SM1)|(1‹‹SM0)); // для PowerSave mode
// Watchdog Timer initialization
// Watchdog Timer Prescaler: OSC/2048k
WDTCR=0x1F;
WDTCR=0x0F;
#asm("sleep"); //Отправляем контроллер в спящий режим
Через две секунды микроконтроллер сбрасывается и приращивает флаг времени
*max_alarm = *max_alarm + 1 ;
if (*max_alarm ›= 60) {
......... инициализация систем и код программы....
*max_alarm = mysec + 2 ; // собственно подгонка под минуту (интервал ровно минута получается)
}
Особое внимание для экономии энергии надо обратить на чисты монтаж, могут быть большие утечки через флюс.
Собственно и все - вдруг кому пригодится.