Например TDA7294

Форум РадиоКот • Просмотр темы - Вопрос по программированию задержки внутри прерывания
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб июл 26, 2025 23:17:02

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 171 ]     ... , , , , 9
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Вопрос по программированию задержки внутри прерывания
СообщениеДобавлено: Пт фев 14, 2025 15:10:54 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6039
Откуда: Minsk
Рейтинг сообщения: 0
В прерывании мы делаем минимум действий.

Так это практика хорошего программирования. Но иногда, чтоб бороться с трудностями, нужно их создать. :(
Я уже приводил, кажется, тут пример. Проектировался прибор для промышленного изготовления, как бы профессионалами. И этот цифровой! измеритель частоты вращения врал на единицы процентов! Делов-то: посчитать импульсы во временном окне, поделить одно на другое. "Будем вводить поправки" - решил их шеф. "Да вы что, уху, что ли, ели? В цифровом - поправки?" - говорю им. А у них в прерывании - и дин. индикация, и аналоговая "полоска", и кнопки. В общем, как говорил Рудик - "Одно сплошное телевидение прерывание". Тут уж просчёты вовсю.
По совету умного человека :) ужали прерывания раз в десять - и забыли об поправках. Прибор и эталонный частотомер - тютелька в тютельку.
СпойлерПоправки - это болезнь.
Делали мы АСК для контроля серьёзного изделия. Там в числе прочего с помощью ВК7-9 меряют сопротивление чего-то нелинейного. Естественно, цифровик показывает далеко не совсем то. "Вводи поправки" - говорит мне коллега, отвечавший за измериловку. "Не хрен лениться. Воспроиведите 'нутро' ВК7-9 на рассыпухе - измерительное напряжение, внутреннее сопртивление для этого режима." - возражаю. Поворчали,сделали. И забыли про поправки.
Цитата:
Им бы крестиком пометить -
И забыть про тот фарватер.
Ох и трудно жить на свете
Сомалийскому пирату. ©

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по программированию задержки внутри прерывания
СообщениеДобавлено: Сб фев 15, 2025 06:42:28 
Встал на лапы

Зарегистрирован: Пн янв 13, 2025 15:24:02
Сообщений: 148
Рейтинг сообщения: 0
Что то никто не сказал что регистр и так можно обнулить, и не влияя на флаги, а я этим постоянно пользуюсь: ldi Rd,0

Добавлено after 15 minutes 53 seconds:
Помню что в прерывании что то делал кроме установления флага, так это ещё в далёкие годы на 51 проце, это когда надо было на скорости 750 Kbd RS485 принимать и тут же передать пакет подготовленных данных, на лету, из компа запрос был и я не прерывая этого сеанса тут же передавал данные. Получалось что в запросе уже был ответ, это особенность чипа FT232 , буфер на приём и на передачу, хоть и полудуплекс. А на мегу когда перешёл уже смысла что то делать в прерывании не вижу, конечно кроме передачи в какой нибудь интерфейс подготовленного байта или приёма байта из интерфейса и положить его куда по указателю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по программированию задержки внутри прерывания
СообщениеДобавлено: Сб фев 15, 2025 10:29:46 
Потрогал лапой паяльник
Аватар пользователя

Карма: 4
Рейтинг сообщений: 96
Зарегистрирован: Вс окт 25, 2020 22:13:25
Сообщений: 305
Откуда: Смоленск
Рейтинг сообщения: 0
Здесь или в соседней теме был разговор про назначение "нулевым" одного из РОН.
Тогда обнулять, не цепляя флаги, получится любой регистр, в отличии от LDI.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по программированию задержки внутри прерывания
СообщениеДобавлено: Сб фев 15, 2025 11:15:51 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6039
Откуда: Minsk
Рейтинг сообщения: 0
Можно и без "нулевого" регистра, LDSом. Регистры - вещь более дефицитная обычно, чем ОЗУ.

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по программированию задержки внутри прерывания
СообщениеДобавлено: Сб фев 15, 2025 12:01:16 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 38
Зарегистрирован: Ср янв 11, 2012 18:20:26
Сообщений: 473
Рейтинг сообщения: 0
Вячеслав М. писал(а):
Что то никто не сказал что регистр и так можно обнулить, и не влияя на флаги
а смысл есть? проверка флага ставится после каких-л внятных действий, а не сразу после clr R16 например)
Jack_A писал(а):
Можно и без "нулевого" регистра, LDSом
не совсем понятно, как lds-ом?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по программированию задержки внутри прерывания
СообщениеДобавлено: Сб фев 15, 2025 12:25:24 
Потрогал лапой паяльник
Аватар пользователя

Карма: 4
Рейтинг сообщений: 96
Зарегистрирован: Вс окт 25, 2020 22:13:25
Сообщений: 305
Откуда: Смоленск
Рейтинг сообщения: 0
shonty писал(а):
как lds-ом?

Видимо чтением ячейки ОЗУ с нулевым содержимым

Jack_A писал(а):
без "нулевого" регистра, LDSом

LDS в два раза медленнее, а иногда скорость важна


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Вопрос по программированию задержки внутри прерывания
СообщениеДобавлено: Сб фев 15, 2025 16:05:14 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6039
Откуда: Minsk
Рейтинг сообщения: 0
Ну если счёт на наносекунды, а регистров свободных - вагон, тогда да. :) :shock:
а смысл есть? проверка флага ставится после каких-либо внятных действий, а не сразу после clr R16 например)

Теоретически можно представить. Если после каких-либо внятных действий требуется внятная реакция на результат этих действий, а для неё нужен обнулённый регистр и незатронутые флаги.

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по программированию задержки внутри прерывания
СообщениеДобавлено: Сб фев 15, 2025 20:06:12 
Встал на лапы

Зарегистрирован: Пн янв 13, 2025 15:24:02
Сообщений: 148
Рейтинг сообщения: 0
Самый простой пример это в прерывании, там бывает так чтобы в стеке ничего не сохранять, тот же статусный регистр, вот там ldi Rd,0 и пригодится, я например для прерываний регистры зарезервировал, и вообще стеком не пользуюсь, только конечно не нарочно, но эти игры со стеком не вдохновляют, значит есть системные ошибки когда стеком пользуешься в микроконтроллерах, через указатели передаю данные, не через стек.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по программированию задержки внутри прерывания
СообщениеДобавлено: Вс фев 16, 2025 14:50:59 
Друг Кота

Карма: 64
Рейтинг сообщений: 1013
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4332
Откуда: Ижевск
Рейтинг сообщения: 0
Замечу. LDI работает только с R16...R31, а CLR со всеми.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по программированию задержки внутри прерывания
СообщениеДобавлено: Вс фев 16, 2025 16:18:18 
Потрогал лапой паяльник
Аватар пользователя

Карма: 4
Рейтинг сообщений: 96
Зарегистрирован: Вс окт 25, 2020 22:13:25
Сообщений: 305
Откуда: Смоленск
Рейтинг сообщения: 0
Jack_A писал(а):
Ну если счёт на наносекунды

Бывает и такое))
А ещё флэш "не резиновый", LDS в два раза больше места в памяти программ занимает.
Jack_A писал(а):
регистров свободных - вагон

Бывает лучше выделить один регистр, т. к. нет вагона времени для выполнения алгоритма и вагона программной памяти.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по программированию задержки внутри прерывания
СообщениеДобавлено: Вс фев 16, 2025 16:21:21 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2917
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18741
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
akl, и LDS со всеми.
а CLR изменяет флаги.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 171 ]     ... , , , , 9

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y