Так это практика хорошего программирования. Но иногда, чтоб бороться с трудностями, нужно их создать. Я уже приводил, кажется, тут пример. Проектировался прибор для промышленного изготовления, как бы профессионалами. И этот цифровой! измеритель частоты вращения врал на единицы процентов! Делов-то: посчитать импульсы во временном окне, поделить одно на другое. "Будем вводить поправки" - решил их шеф. "Да вы что, уху, что ли, ели? В цифровом - поправки?" - говорю им. А у них в прерывании - и дин. индикация, и аналоговая "полоска", и кнопки. В общем, как говорил Рудик - "Одно сплошное телевидение прерывание". Тут уж просчёты вовсю. По совету умного человека ужали прерывания раз в десять - и забыли об поправках. Прибор и эталонный частотомер - тютелька в тютельку. СпойлерПоправки - это болезнь. Делали мы АСК для контроля серьёзного изделия. Там в числе прочего с помощью ВК7-9 меряют сопротивление чего-то нелинейного. Естественно, цифровик показывает далеко не совсем то. "Вводи поправки" - говорит мне коллега, отвечавший за измериловку. "Не хрен лениться. Воспроиведите 'нутро' ВК7-9 на рассыпухе - измерительное напряжение, внутреннее сопртивление для этого режима." - возражаю. Поворчали,сделали. И забыли про поправки.
Что то никто не сказал что регистр и так можно обнулить, и не влияя на флаги, а я этим постоянно пользуюсь: ldi Rd,0
Добавлено after 15 minutes 53 seconds: Помню что в прерывании что то делал кроме установления флага, так это ещё в далёкие годы на 51 проце, это когда надо было на скорости 750 Kbd RS485 принимать и тут же передать пакет подготовленных данных, на лету, из компа запрос был и я не прерывая этого сеанса тут же передавал данные. Получалось что в запросе уже был ответ, это особенность чипа FT232 , буфер на приём и на передачу, хоть и полудуплекс. А на мегу когда перешёл уже смысла что то делать в прерывании не вижу, конечно кроме передачи в какой нибудь интерфейс подготовленного байта или приёма байта из интерфейса и положить его куда по указателю.
Здесь или в соседней теме был разговор про назначение "нулевым" одного из РОН. Тогда обнулять, не цепляя флаги, получится любой регистр, в отличии от LDI.
а смысл есть? проверка флага ставится после каких-либо внятных действий, а не сразу после clr R16 например)
Теоретически можно представить. Если после каких-либо внятных действий требуется внятная реакция на результат этих действий, а для неё нужен обнулённый регистр и незатронутые флаги.
Самый простой пример это в прерывании, там бывает так чтобы в стеке ничего не сохранять, тот же статусный регистр, вот там ldi Rd,0 и пригодится, я например для прерываний регистры зарезервировал, и вообще стеком не пользуюсь, только конечно не нарочно, но эти игры со стеком не вдохновляют, значит есть системные ошибки когда стеком пользуешься в микроконтроллерах, через указатели передаю данные, не через стек.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения