Не умею сразу выделять главное. Попробую.
Код:
ISR(TIMER5_OVF_vect){ // 1 sec. overflow
epoch++; // seconds++
TCNT5 = 3035; // 16 MHz / 256 and bottom 3035 gives 1 sec.
}
unsigned long int epoch; // seconds since 01/01/1970
void setup() {
..
TCCR5A = 0;
TCCR5B = 0;
TCCR5B |= (1<<CS52); // 16 MHz prescaled with 256
TIMSK5 |= 1<<TOIE5; // overflow interrupt enable
..
// один раз читаем rtc и переводим в секунды не забыв про високосные годы, лучше использовать готовую библиотеку времени
// epoch = ..
}
Здесь из накладных расходов лишь периодический, если нужно, вывод эпохи в виде даты с использованием той же библиотеки времени. Прерывание и таймер живут сами по себе и ресурсов почти не потребляют. (несколько тактов на прибавление переменной epoch и два такта на предзагрузку счетного регистра). Можно ведь и вовсе не выводить дату, а можно выводить сто раз в секунду. Уже не важно. Сохранять epoch в rtc не требуется, он живет сам по себе. И все это лишь при наличии желания, можно забыть. (=
Сообщение от
ex8ai
вот такую штуку пристегнуть
Если раньше, выезжая в безлюдную степь, мы могли забыть источник помехи в городской квартире, то теперь вопрос будет решен кардинально, раз и навсегда.
Местонахождение транзистора не основной момент, хотя снаружи, при подборе частоты шумо-импульсной модуляции, его проще посадить на общую с вч-трактом землю. (= Не основной, ибо сновной - в выводах МК. У шима же выходы привязаны к конкретным выводам. Если те свободны, то да, можно сразу смотреть от каких там они таймеров и программировать. Если же нужные выводы оказались заняты, то сначала менять их на другие свободные, вероятно сталкиваясь с какими-нибудь новыми, пока неочевидными проблемами.