Например TDA7294

Форум РадиоКот • Просмотр темы - Вопросы начинающих PIC ASM
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб авг 16, 2025 09:11:48

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


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



Начать новую тему Ответить на тему  [ Сообщений: 731 ]     ... , , , 33, , , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пт июл 05, 2024 15:59:53 
Говорящий с текстолитом

Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1675
Рейтинг сообщения: 0
Или halt? То есть reset


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пт июл 05, 2024 16:41:15 
Нашел транзистор. Понюхал.

Карма: -8
Рейтинг сообщений: 17
Зарегистрирован: Сб апр 24, 2021 18:42:11
Сообщений: 155
Рейтинг сообщения: 0
Или halt? То есть reset

Жесть... Не в коня корм.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Сб июл 06, 2024 09:30:58 
Говорящий с текстолитом

Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1675
Рейтинг сообщения: 0
А если серьёзно, для чего nop используют в программе? Понятно, ничего не делать, пропуск командного цикла, задержка. В каких случаях это может понадобиться, пример можно? Если внешнее устройство, порт не поспевает, надо ПП задержки делать, на nop-ах в цикле или таймерах. Но иногда встречались листинги, один-два nop-а и всё. Чего они там задержат?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Сб июл 06, 2024 10:02:38 
Говорящий с текстолитом

Карма: 25
Рейтинг сообщений: 450
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1645
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Действительно в немногих случаях встречал, ниже: NOP напр. в start/stop I2c, чтобы условие было выполнено.

- требование из документации I2c

Изображение

- эксперименты со HW Fast-mode plus I2c в PIC18F06Q40, измеренные данные от логического анализатора

.lst файл:
Код:
....................   i2c_start();
*
00052:  BSF    4C8.1
00054:  NOP   
00056:  BSF    4C8.0
00058:  BRA    005A
0005A:  BCF    4C0.1
0005C:  BCF    4C8.1
0005E:  NOP   
00060:  BCF    4C0.0
00062:  BCF    4C8.0

Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Сб июл 06, 2024 10:19:37 
Друг Кота

Карма: 67
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
Как минимум, для подмены команды при ветвлении, для выравнивания, для того, чтобы подождать, пока какая-то одна аппаратная часть догонит другую.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Сб июл 06, 2024 11:07:15 
Говорящий с текстолитом

Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1675
Рейтинг сообщения: 0
Как минимум, для подмены команды при ветвлении, для выравнивания
Можно этот момент прояснить? Какие команды подменять, если одно условие - значит делать то, другое - это. И про выравнивание. Поиск предлагает выравнивание фото.

А кстати, в проблеме RMW NOP может помочь?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Сб июл 06, 2024 11:23:47 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23988
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
И про выравнивание.

Условное ветвление имеет разное время исполнения, в зависимости от необходимости этого самого ветвления. Если код продолжает линейное исполнение, то время равно 1 циклу, а если произошел переход, то 2 циклам. Пустые инструкции позволяют выровнять оба варианта и обеспечить отсутствие джиттера временнОй диаграммы на этом участке.
Так же пустые инструкции позволяют формировать импульсы определенной длительности ногодрыгом. Обычно так делают при коротких импульсах длительностью в несколько машинных циклов.
В 16-разрядной платформе (PIC24/dsPIC) nop-ы применяют для задержек в циклах с RAW-инструкциями. Не путать с RMW.
К ним относятся инструкции с автоинкрементными/автодекрементными адресациями.
А кстати, в проблеме RMW NOP может помочь?
Нет.


Последний раз редактировалось КРАМ Сб июл 06, 2024 11:33:18, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Сб июл 06, 2024 11:30:02 
Говорящий с текстолитом

Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1675
Рейтинг сообщения: 0
линейное исполнение, то время равно 1 циклу, а если произошел переход, то 2 циклам. Пустые инструкции позволяют выровнять оба варианта
Так же пустые инструкции позволяют формировать импульсы определенной длительности ногодрыгом. Обычно так делают при коротких импульсах длительностью в несколько машинных циклов.

Логично.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Вт июл 09, 2024 19:06:29 
Говорящий с текстолитом

Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1675
Рейтинг сообщения: 0
Код:
incrementing of Timer0 (TMR0 and Prescaler) will also be inhibited 2 instruction cycles (TCY). So if the prescaler is configured as 2, then after a write to the TMR0 register TMR0 will not increment for 4 Timer0 clocks (Figure 11-3). After that, TMR0 will increment every prescaler number of clocks later.
А если предделитель настроен 1:256, пропуск 512 клоксов? И вообще, не противоречат ли они сами себе: с одной стороны, как они говорят раньше, при записи в TMR0 предделитель сбрасывается, а тут он, оказывается, уже настроен 1:2 и при записи в TMR задержка 4 клокса, и он не сбрасывается, получается.
Как бы там ни было, надо, значит, сначала записать TMR, а потом предделитель. И никаких проблем? В смысле пропусков клоксов?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Вт июл 09, 2024 20:33:06 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23988
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Clock - это единственное число
Clocks - множественное.
Если употребляете англицизмы, то потрудитесь не писать глупости.
Или склоняйте по правилам русского языка, или пишите по английски.
А то ваши клоксы звучат гомерически смешно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Вт июл 09, 2024 20:34:43 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15136
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
https://web.archive.org/web/20080221231 ... c16_11.pdf
страничка 6...
Речь о 4 циклах при внутреннем тактировании.
Собственно предделитель T0 делит с WDT и там конкретно по выбранному МК почитать не помешает. Иногда включая ерраты.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Ср июл 10, 2024 11:43:07 
Говорящий с текстолитом

Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1675
Рейтинг сообщения: 0
А то ваши клоксы звучат гомерически смешно.
Смех продлевает жизнь! НО Вам, по-моему, не смешно)) Это грустно


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Ср июл 10, 2024 11:54:18 
Друг Кота

Карма: 67
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
клоксы
двумерный массив клоков :roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Ср июл 10, 2024 14:09:03 
Говорящий с текстолитом

Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1675
Рейтинг сообщения: 0
Обнаружил ошибку в предыдущем описании. То сообщение никак удалить не могут.

Придумал способ превращения 8 бит таймера в 16 бит. Основано на динамическом вычислении значения предделителя.
Свойства:
1) точность отсчёта - десятки тиков
2) дискретность отсчёта - 1 тик
3) диапазон 64К тактов, как у 16 бит без делителя
Минусы:
1) большее время инициализации
...
Код:
Дано: 16бит число 0x4321
Значение предделителя=период : макс разрядность предделителя
1) 4321:FF=43 (округлить до целого) ; FF - макс разрядность предделителя
(или 4321 >>8 = 43, надеюсь правильно обозначил сдвиг вправо на 8 разрядов, быстрее, но меньше точность)
2) У результата определить вес старшего единичного разряда
43 ->  max^2 = 40 и взять следующий старший вес = 80 (не корите за корявость выражения)
Предделитель=0x80

Значение таймера=FF-период : предделитель
Кол-во циклов=4321:80=86 (округлить)
Значение TMR=FF-86=79, так как он считает от нуля

Итого имеем
T=preTMR*TMR
80*86=4300


Ошибка 21 тик, что на единицах и десятках миллисекунд очень даже нечувствительно.
Из FF вычитать кол-во циклов, так как таймер считает от нуля.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Чт июл 11, 2024 04:12:54 
Нашел транзистор. Понюхал.

Карма: -8
Рейтинг сообщений: 17
Зарегистрирован: Сб апр 24, 2021 18:42:11
Сообщений: 155
Рейтинг сообщения: 0
...
А кстати, в проблеме RMW NOP может помочь?
Нет.

Всю ветку не читал, но для PIC без регистров LAT в некоторых случаях NOP очень даже может помочь. Вот хорошая статья на тему RMW:
https://electrosome.com/read-modify-write-problem-pic/
Когда проблема RMW может возникнуть:
Цитата:
The actual physical state (voltage level) of a pin may be different from the value written to PORT register in certain instances. For example:
- When the output pin is connected to high inductance or capacitance loads.
- When the output pin is connected to LEDs without current limiting resistors.
- When the output pin drives a transistor without base resistor.
- When the output pin is shorted to ground.

И возможные варианты решения проблемы:
Цитата:
...
How to Solve this problem ?
1. Insert a delay after RB7 = 1 such that sufficient time is provided for the charging of capacitor.
...

Этим "delay" как раз и может стать NOP. Но это, повторюсь, справедливо лишь в некоторых случаях, особенно у начинающих :-D. Нормальная схемотехника позволит не прибегать к таким трюкам, это чисто для теории. У первых PIC была еще история связанная с конвеером, где мог потребоваться NOP:
http://www.amber.ssau.ru/download/PIC16_Manual.pdf
п.9.10.2. Последовательность операций с портами ввода/вывода


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пт июл 12, 2024 16:26:02 
Говорящий с текстолитом

Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1675
Рейтинг сообщения: 0
Про подавление дребезга и паразитных скачков на сканируемых входах: как-то говорили, и назывались цифры, что при механических кнопках порядка 20мс, на оптодатчиках вроде меньше, но тоже около единиц миллисекунд. Если память не изменяет. А как быть, если период между импульсами (между нажатиями, можно считать) сам по себе 5мс?
Ничего лучше как несколько раз опрашивать входы, сверяя с предыдущим состоянием, я не придумал.
Применена пара свето-фотодиод, между ними пролетает шторка из алюминия, обрезанная ножницами вручную. В сканировании участвует от 7 до 10 команд, безошибочный повтор 5 раз - это получается 35-50мкс. Какова надёжность такого способа?
Можно, наверное, шторку подточить на строгую перпендикулярность краёв, покрасить поглощающей краской, или и так сойдёт?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пт июл 12, 2024 17:21:10 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23988
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
А как быть, если период между импульсами (между нажатиями, можно считать) сам по себе 5мс?

Что это за механический датчик с периодом 5 мс? :facepalm:
В любом случае, такой "автомобиль" не поедет.
Оптодатчики дребезга не имеют, в отличии от механических. Там вопрос решается простым гистерезисом триггера Шмитта или компаратора.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пт июл 12, 2024 17:34:04 
Говорящий с текстолитом

Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1675
Рейтинг сообщения: 0
Что это за механический датчик с периодом 5 мс?
Где я такое написал? Внимательнее читайте сообщения))

Оптодатчики дребезга не имеют, в отличии от механических.
На криво обрезанной шторке, да при отражениях от неё, могут быть явления, подобные дребезгу. Назовём их "паразитными срабатываниями".


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пт июл 12, 2024 17:36:12 
Друг Кота

Карма: 67
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
Про подавление дребезга и паразитных скачков на сканируемых входах: как-то говорили, и назывались цифры, что при механических кнопках порядка 20мс
число может быть и трехзначным, зависит от кнопки

КРАМ писал(а):
Что это за механический датчик с периодом 5 мс?
геркон? возможно, тот успеет отдребезжать


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы начинающих PIC ASM
СообщениеДобавлено: Пт июл 12, 2024 17:41:28 
Говорящий с текстолитом

Карма: -3
Рейтинг сообщений: 84
Зарегистрирован: Сб янв 19, 2008 23:57:27
Сообщений: 1675
Рейтинг сообщения: 0
Чему вы удивлячетсь, хоть я и не писал об этом, но контакты прерывателя механические, да, вполне себе работают до 6000-8000тыс. оборотов, а это период 5-3мс у 2Ц/2Т мотора.


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

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


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

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


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

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


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