[uquote="WiseLord",url="/forum/viewtopic.php?p=3468225#p3468225"]Низкоприоритетному прерыванию (секунды) можно включить флаг ISR_NOBLOCK, тогда оно будет прерываться другими. Фактически, то же самое, что Вы сделали, но, что ли, чуть правильнее[/uquote]
А как это сделать?
Добавлено after 50 seconds:
[uquote="trofim2",url="/forum/viewtopic.php?p=3468278#p3468278"]И не надо вообще входить в прерывание по секунде, а просто опрашивать его в фоне, и вычитывать по I²C и сбрасывать запрос на прерывание.[/uquote]
Опрашивать прерывание в фоне - это как? Или Вы имеете ввиду, в фоне опрашивать RTC?
Добавлено after 6 minutes:
[uquote="BOB51",url="/forum/viewtopic.php?p=3468285#p3468285"]Замена данных в буфере отображения/вывода ВСЕГДА производится в конце текущей строки развертки при погашенной индикации (тогда и "дерготни" не будет)
А глазу наблюдателя смена показаний что на 0,016 секунды раньше, что на такое же время позже АБСОЛЮТНО БЕЗ РАЗНИЦЫ.

[/uquote]
Хорошая идея! Вот только как синхронизировать прерывания от таймера и внешние прерывания?
[uquote="BOB51",url="/forum/viewtopic.php?p=3468285#p3468285"]Насчет "глючения" в разные относительно длинные и неравномерные интервалы времени - это к гадалкам.
Обычно нормально написанная программа таких дефектов не имеет.[/uquote]
Да уж, это точно) Решительно не могу понять, как процессор перепрыгивает в самое начало программы. которое вообще не должно повторяться. Там помимо начальной инициализации портов и периферии на индикаторы выводится 1234, затем
rjmp PC и дальше работа на прерываниях. Но каким-то образом раз в несколько часов на индикаторах снова появляется 1234 и время перестаёт считываться из RTC.
[uquote="BOB51",url="/forum/viewtopic.php?p=3468285#p3468285"]Кстати... обычно чтение ВСЕХ данных из RTC делается или однократно при запуске устройства по подаче питания или только по "жизненной необходимости" (включая коррекцию данных").
В остальное время работает модуль "внутренних часов" в самом МК с приращением от ежесекундного прерывания от RTC.
Остальные программы подбираются с учетом секундного интервала - должны или вписыватся в него или "дробиться" на участки менее 1 секунды.

[/uquote]
Если подсчётом времени занимается RTC, то зачем программно считать время? ИМХО, проще с некоторым интервалом читать время из RTC.
Добавлено after 2 minutes 59 seconds:
[uquote="dgrett",url="/forum/viewtopic.php?p=3468305#p3468305"]А 500 герц считаю слишком много, для динамики имхо, хватило б и 100. Тогда и не надо будет разрешать прерывания в прерывании.[/uquote]
500 Гц - это потому что 5 индикаторов (часы, минуты и посередине разделительный символ мигает раз в секунду). Т.е. цикл повторения индикации как раз 100 Гц.