Вопросы начинающих PIC ASM

Поклонники продукции Microchip Technology Inc тусуются тут.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15570
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Вопросы начинающих PIC ASM

Сообщение BOB51 »

Придётся ошибок лишних отлавливать.
Проще базовую шапку для относительного режима в главный файл проекта вставить.
8)
Для gpasm минимум пара док есть.
Может не для той версии, но основа в принципе одинакова.
Вечерком по прохладце комп запущу да скину накопанное.
Сейчас жалко компом рисковать (в комнате +31).
8)
Реклама
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25259
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Вопросы начинающих PIC ASM

Сообщение КРАМ »

[uquote="BOB51",url="/forum/viewtopic.php?p=4601879#p4601879"]Придётся ошибок лишних отлавливать.[/uquote]
Каких конкретно ошибок?
Реклама
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4601868#p4601868"]Еще раз предлагаю перейти на перемещаемый режим. Чтобы не грызть кактус.[/uquote]Да ладно, нам маргиналам не привыкать))
BOB51 писал(а):Относительно документации - при использовании официального дистрибутива она обязательно в комплекте идёт.
Как минимум руководство по ключам командной строки... :tea:
Ага, есть параметр --mpasm-compatible. но не помогает. Пропишу CBLOCK руками попробую

Добавлено after 29 minutes 28 seconds:
Не помогло

Добавлено after 38 minutes 10 seconds:
Ага, понятно, дело в #define. Как прописать две команды, в доке не описано?

Код: Выделить всё

#define Bank0<->bcf STATUS,RP0
------>bcf STATUS,RP1
#define Bank1<->bsf STATUS,RP0
<------>bcf STATUS,RP1
#define Bank2<->bcf STATUS,RP0
<------>bsf STATUS,RP1
#define Bank3<->bsf STATUS,RP0
<------>bsf STATUS,RP1
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15570
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Вопросы начинающих PIC ASM

Сообщение BOB51 »

КРАМ
я помню, что что - то было,но уже с тех пор уже шклероз достает ...
8)
Относительно дистрибутивов и документации...
идем сюда:
https://gputils.sourceforge.io/#Platforms
там все, что требуется есть.
Симпатяшный поисковичок-справочник по параметрам с картами ОЗУ/РСФ в html формате
(диск:\Program Files (x86)\gputils\doc\html-help)
Даже под win32...
(ставится в виде каталога gputils)
:hunger:
Ежли чего - скину в сундук комплект под win32 (для линуксов надо выбирать из длинносписка).
gpasm.pdf
(50.2 КБ) 256 скачиваний
gputils.pdf
(238.79 КБ) 249 скачиваний
8)
Последний раз редактировалось BOB51 Сб июл 13, 2024 13:44:33, всего редактировалось 1 раз.
Реклама
Эиком - электронные компоненты и радиодетали
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

Это у меня есть, но спасибо за напоминание, буду прочёсывать)) И чего я полез в mpasm, не иначе, бес попутал))
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15570
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Вопросы начинающих PIC ASM

Сообщение BOB51 »

там вроде и плагин для мпасма мелькал....
а по набору подключаемых файлов (при беглом просмотре) почти похоже,но в гпасме еще добавлено ранее неведомых форматов.
вобччемссс... там отдельные спецы - консультанты могут потребоваться.
Распечатки док для детальной читки пока делать влоомушки...
:sleep:
...
ббыыррр...
с Пн янв 11, 2016 16:11:36 до сих пор не сумели верно разобраться в ситуёвине недопонимания...
стареемссссшшшшсссс
:tea:
:beer:
Реклама
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

[uquote="BOB51",url="/forum/viewtopic.php?p=4601919#p4601919"]там вроде и плагин для мпасма мелькал.[/uquote]
Для MPLAB-a. С ним можно под MPLAB IDE gpasm использовать. Налетай))

Добавлено after 2 hours 55 minutes 16 seconds:
А что в регистрах таймеров TMR0 TMR1, когда они генерируют прерывание? Вот выставил таймер бит прерывания, в следующем цикле на 0x04 - это уже он перевалил за максимум и в нолях? Если в ПП прерывания первая команда - стоп таймера, что будет после неё в регистрах таймеров? Вообще-то это неважно, так как можно считать, что он прошёл свой цикл и FF:[FF]. Но это важно, когда вручную останавливаешь TMR1 около конца счёта, и считываешь вместо FFFE, например, 02. Честно прочитал и на контроллер, и общий даташит про таймер и прерывания, и ничего про это не нашёл.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15570
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Вопросы начинающих PIC ASM

Сообщение BOB51 »

Это актуально разве что для случая, когда один отсчет таймера равен одному такту МК.
Да еще в случае "генератора секунды" на основе Т1 (была апнота по данному вопросу с "хитрым приемом").
В остальном особых проблем обычно не бывает (или используется модуль CCP и/или связка T1-T2-CCP).
Плюс смотрим правила чтения/записи в 16 разрядные регистры...
:roll:
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

То есть если успел до прерывания вручную остановить таймер, то однозначно, железно он не перевалил за свою вершину?
А может ведь так совпасть , что остановил его, а перед следующей инструкцией он выдаст прерывание?

Один шанс из 65536 только в одном цикле счёта, а циклов много. Или один шанс всего на 65мкс, а времени годá)) Это на самом деле большие шансы поймать такой случай.

Где-то попадался график, где таймер вырабатывает прерывание, с фронтами и проч., но найти не могу.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15570
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Вопросы начинающих PIC ASM

Сообщение BOB51 »

Это уже не вопрос таймера, а вопрос алгоритма и схемотехники проекта. Изначально задача, а уж затем подбор наиболее удачных компонентов (из имеющегося и хорошо проработанного) для её решения.
Где то ПИКи, где то АВРки, где то 51е или ещё чего, а где то и внешняя "рассыруха" средней и высокой степени интеграции, микросхемы - расширители различных комплектов микропроцессоров или дополнительный МК.
Это ведь творчество...
8)
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

Чтобы алгоритмически и схемотехнически избежать такой ситуации, надо знать, как оно на самом деле обстоит.
Какой подбор компонентов, если это мне в наследство досталось и уже дорого как память)) Я его не брошу))
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15570
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Вопросы начинающих PIC ASM

Сообщение BOB51 »

Ну с внешней рассыпной или дополнительным МК я думаю проблем ни у кого не возникает.
:wink:
Вот и разгружаем основной МК внешней аппаратной обвязкой.
регистры, счётчики, дешифраторы, спец таймеры прочую логику.
Это ежли с внутренней аппаратной начинкой основного МК напряженка или чего специфичного обработать надо.
А в МК уже обработанные данные скармливаем.
8)
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

Скомпилилась, и даже признаки жизни подаёт, не знаю только, насколько правдиво. В одном симуляторе одно, в другом другое, в третьем совсем не работает. Если кому интересно, запустите в МПЛАБ, на 1 и 2 ногу короткие отрицательные импульсы в противофазе скважностью 50 частотой от 5 до 100Гц. Хотя МПЛАБ не может же плавно частоту менять? Или в Протеусе тогда. Результат на 11 и12 ногах.
pic-uoz.tar.7z
(22.87 КБ) 3779 скачиваний
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

Ого, какая популярность у архивчика))) Да оно нерабочее.

Подскажите пож-ста, как сделать, чтобы при наборе Bank0 вставлялось две команды?

Код: Выделить всё

#define Bank0 bcf STATUS,RP0
                      bcf STATUS,RP1
В этом виде вторая строка раскрывается как отдельная команда. А в первую не получилось через разные разделители вписать.
Macro мутная какая-то. По определённым адресам, прямо в коде пишется, а не в шапке, вроде.

Добавлено after 2 hours 17 minutes 34 seconds:
Так на флаг T0IF можно вообще не обращать внимания, пока сброшен T0IE? Он же всегда задран, если не сбрасывать его каждый цикл счёта, что было бы бессмысленно?

Добавлено after 40 minutes 27 seconds:
Гляньте пож-ста, что я накосячил с инициализацией таймеров. Уже импульсит вовсю, только не совсем складно.
simulide.tar.7z
(24.69 КБ) 229 скачиваний
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15570
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Вопросы начинающих PIC ASM

Сообщение BOB51 »

Макрос делать надо.
Собственно так (макросами) добавляются "псевдокоманды" в мпасме.
То же должно быть и в gpasm...
:roll:
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

Не пойму никак, если MCLR висит на выводе, через R на питание, как надо задать __CONFIG:
1) _MCLRE_ON
2) _MCLRE_OFF
??
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Вопросы начинающих PIC ASM

Сообщение Martian »

_MCLRE_ON - вход как Reset
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

Можно ли в MPLAB 8.92 сделать две таких противофазных последовательности, прилагаемых к выводам? Я , конечно, читаю доку, но пока не очевидно.
Спойлерком. циклы, уровень
{ 175000, 1,
5000, 0,
125000, 1,
4500, 0,
100000, 1,
4000, 0,
75000, 1,
3000, 0,
53000, 1,
2000, 0,
40000, 1,
1600, 0,
31000, 1,
1200, 0,
25000. 1.
1000. 0.
20000, 1,
800, 0,
17000, 1,
680, 0,
15000, 1,
600, 0,
12000, 1,
480, 0,
10500, 1,
400, 0,
12000, 1,
480, 0,
15000, 1,
600, 0,
17000, 1,
680, 0,
20000, 1,
800, 0,
25000, 1,
1000, 0,
30000, 1,
1200, 0,
40000, 1,
1600, 0,
53000, 1,
2000, 0,
75000, 1,
3000, 0,
100000, 1,
4000, 0,
125000, 1,
5000, 0, }
Добавлено after 11 minutes 10 seconds:
Я вижу, что это "Clock Stimulus", но там вроде только два фиксированных повторяющихся значения, или можно всю эту таблицу вбить, чтобы уровни на ножках были разной длительности?

Добавлено after 26 minutes 56 seconds:
Ага, это File Stimulus. Вот этот пример только в ранних версиях упоминается, а в поздних нет такого. Будет в 8.92 работать?

Код: Выделить всё

CYCLE RB1 RB0
 20 0 0
 41 1 0 ; Установить высокий уровень сигнала на RB1
 52 0 1 ; Установить высокий уровень сигнала на RB0, низкий на RB1
 55 1 1
 60 0 0
 65 1 0 ; Переключить RB1, тогда ….
 76 0 1 ; …. переключить RB0.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15570
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Вопросы начинающих PIC ASM

Сообщение BOB51 »

А что мешает "универсальную макетку" в железе сделать?
:roll:
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

Re: Вопросы начинающих PIC ASM

Сообщение yor »

В железе это в железе, а в софте это в софте. В общем, в МПЛАБе нельзя, а в ГПСИМе можно.

А какие есть способы подвесить в симуляторе процессор? Не сбросить кнопкой на MCLR, например, то есть внешним воздействием, а чтоб он сам в любом случайном месте не сбросился, а именно завис? То есть срабатывание WDT проверить?
По той же кнопке завести программу в тупик, игнорируя обнуление WDT? А ещё?
Ответить

Вернуться в «PIC»