Основная причина - как раз из-за дисплея. Много лишней информации. Бесполезный информационный мусор. Для тинейджеров может и интересная, но когда тебе далеко за, то начинаешь экономить время даже в таких мелочах и перестаешь делать игрушки ради игрушек
.
Вторая, более важная, в статье о ней не говорил, т.к. в версии "good" от нее избавился. А именно, в версии "bad" запись в EEPROM производится по int0. Пока на соответствующей ноге МК напряжение не упадет до лог. 0 запись не производится.
А в версии "good" запись производится по контролю спада напряжения на АЦП не до 2,3v, а всего до 4 вольт и при этом все прерывания во время записи отключаются. Что благоприятно сказывается на устойчивости записи. Если после 3-секундной паузы напряжение поднимется до нормального, то отсчет продолжается как ничего не бывало, но время уже зафиксировано в памяти на всякий случай.
Версия "bad" в этом плане менее защищена от ошибок. Во-первых, гораздо меньше остается времени на запись, потому что надо дождаться более глубокого разряда первого конденсатора. Во-вторых, при кратковременном проседании напряжения на генераторе программа может повести себя непредсказуемо. Просто из-за того, что у меня генератор инверторный, я обработку таких ситуаций не учитывал в программе. Мой напряжение на выходе сам отслеживает, напряжение либо есть, если он работает, либо его нет, если не работает. На дешевых китайских генераторах все очень не так, оно на выходе может быть не только нормальным, но и пониженым. А бэд-версия после записи прекращает свою работу, хотя генератор вполне может тут же и вернуться к нормальному напряжению не дав тем самым МК сброситься и перезапуститься.