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

Поклонники продукции Microchip Technology Inc тусуются тут.
Kostin-cx
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Сб апр 15, 2023 13:56:13

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

Сообщение Kostin-cx »

я не понимаю прерываний, если это не точный счёт времени, и прерывания могут поступить от разных источников...всё равно в таком случае их отрабатывать в какой-то очереди...я в этом случае запрещал прерывания, а потом в свободном месте цикла смотрел надо ли кому чего.....
Реклама
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25237
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

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

[uquote="Kostin-cx",url="/forum/viewtopic.php?p=4457974#p4457974"]я не понимаю прерываний.....[/uquote]
Этим следовало бы и ограничится, а не продолжать говорить всякую хрень.
Прерывания вообще не нужны для счета времени. Прерывания нужны как РЕАКЦИЯ НА СОБЫТИЯ. Не важно какие.
Это может быть готовность данных периферии (АЦП, УАРТ, SPI, I2C и т.д.), Это может быть готовность периферии ПРИНЯТЬ новую порцию данных. Это может быть реакция на внешнее событие, например срабатывание датчика или переход через ноль напряжения сети...
А счет времени ведет ТАЙМЕР. И ему в этом процессе вообще не нужны никакие прерывания. Он вообще ничего не знает о прерываниях с той лишь разницей, что он САМ МОЖЕТ ИХ ГЕНЕРИРОВАТЬ при определенных обстоятельствах.
Что касается процесса обработки событий от разных источников, то либо нужно мириться с ограничениями архитектуры с фиксированным вектором (семафор в начале обработчика и последовательная обработка в порядке этого семафора), либо переходить на МК с индивидуальными векторами на каждый источник прерываний (по типу PIC18Q), либо переходить на МК с контроллером вложенных прерываний (PIC24, dsPIC33, PIC32, PIC32C или вообще любой другой ARM иных производителей).
Реклама
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

Тоже не понятна идея использовать 20+ летний МК для всего, в т.ч. обработка сигналов как в теме (почти ЦОС :) ). Они с ограниченные ресурсы, сейчас уже дороже.

случайное сравнение с тем, что есть:
PIC16F648A: $3.34, 7KB, 256b, 3 таймера, Interrupt Sources: 10, без возм. изменения приоритета
PIC18F26Q10: $1.49, 64KB, 3.6KB, 7 таймера, 2-Level Interrupt Priority, с переводчиком: прерывания с высоким приоритетом прерывает прерывание с низким приоритетом.

Вижу вариант деятельности таким образом только для ознакомления с возможностями старых типов МК, но не для работающей конструкции.
...
По нескольким моим конструкциям вопросы похожи на вопросы моих друзей и знакомых: "С этим МК нельзя?" И возвращаются на 16F628A, 12F629/675, 16F873А ... (Возможно, такие МК так и остались неиспользованными, не знаю, что еще думать для причина). Ну, не может. Часто остаюсь с непониманием.
Последний раз редактировалось veso74 Вс авг 06, 2023 10:35:35, всего редактировалось 1 раз.
Kostin-cx
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Сб апр 15, 2023 13:56:13

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

Сообщение Kostin-cx »

КРАМ писал(а): Прерывания нужны как РЕАКЦИЯ НА СОБЫТИЯ
так вот именно, что сразу на все события одним процессором не отреагируешь, поэтому "все в очередь", типа закончу одно, займусь следующим...(да, процессор не из новейших и опыт далеко не программиста)
===
для себя я представлял, что по прерыванию должен следовать мгновенный переход на его отработку, а если мгновенный не требуется, то тогда обработка запросов в свободном месте программы, когда все "внутренние" процессы завершены...
Реклама
Эиком - электронные компоненты и радиодетали
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

Ето верно: с флагом, быстрыми расчетами. А в плюсе: некоторые компиляторы/IDE (С) отказываются компилироваться при обнаружении возможных конфликтов, что избавляет от бесконечного написания кода и тестирования с вых. логических ошибок и несоответствий.

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

>>> Warning 216: Interrupts disabled during call to prevent re-entrancy: (...)
Реклама
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25237
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

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

[uquote="Kostin-cx",url="/forum/viewtopic.php?p=4458014#p4458014"]так вот именно, что сразу на все события одним процессором не отреагируешь, поэтому "все в очередь", типа закончу одно, займусь следующим...(да, процессор не из новейших и опыт далеко не программиста)
===
для себя я представлял, что по прерыванию должен следовать мгновенный переход на его отработку, а если мгновенный не требуется, то тогда обработка запросов в свободном месте программы, когда все "внутренние" процессы завершены...[/uquote]
Никаких "мгновенных" переходов не может быть ПО ОПРЕДЕЛЕНИЮ. Любой вызов обработчика прерываний связан с ЛАТЕНТНОСТЬЮ такого перехода (в разных архитектурах эта латентность разная), которая (латентность) определяется длиной конвейера АЛУ, который нужно завершить, отделив код основного цикла от кода обработчика. То есть минимум 4 машинных цикла на такой переход придется отдать. Далее последует сохранение контекста, которое в обсуждаемой архитектуре займет еще 4 машинных цикла, затем семафор - еще 4 цикла... И лишь потом код собственно обработчика.
Механизм прерываний не слишком быстр. Им не реализовать строгий синхронизм. Поэтому синхронизацию нужно строить на встроенных аппаратных фичах МК.
Реклама
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

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

Сообщение yor »

Правильно ли я понимаю, что подсчёт длительности с помощью 8бит таймера до прерывания в тактах OSC/4 выглядит так: Kpre*FF*Kpost+TMR?
А с дискретностью тут не очень, она равна Kpre*Kpost?
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25237
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

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

[uquote="yor",url="/forum/viewtopic.php?p=4459588#p4459588"]с дискретностью тут не очень[/uquote]
Именно так. Патамушта выбирать МК нужно под задачу, а не заниматься мазохизмом в неприспособленных условиях.
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

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

Сообщение yor »

Может подскажете замену нога в ногу pic16f648 с двумя 16 бит таймерами?
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

Задайте нужные параметры (напр. pin18 - pin 18), база будет отфильтрована и легко найдете нужный МК:
MICROCHIP ADVANCED PART SELECTOR

МК на 18 выводов не много. Такого МК нет.
PIC18F1220/1320, некоторые контакты совпадают, но номера входов/выходов с 16F648A разные.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25237
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

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

[uquote="yor",url="/forum/viewtopic.php?p=4459720#p4459720"]Может подскажете замену нога в ногу[/uquote]
Зачем нога в ногу? :dont_know: Вы модернизируете серийное изделие?
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

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

Сообщение yor »

PIC18F1230/1330 да, побогаче, и прерываний море, и частота 40МГц, но таймера всего два, зато 16бит. Пока вроде хватает. При написании своей программы несовпадение ног не страшно. Но стоят от 300руб, до 600, а в чипдипе 2600!

Мелкосерийное)) У меня пять изделий, и старая программа без исходников уже на них не пойдёт. Если вдруг придётся вернуться. Так что повоюем пока. Ради повышения квалификации в том числе. В принципе, варианты есть. Пускать друг за другом два 8бит таймера без делителей, например. Использовать один 16-битный на всё про всё.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15562
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Есть смысл посмотреть чего есть в "улучшенной среднемладшей" в смысле подобия корпусировки и улучшенного содержимого.....
:roll:
Аватара пользователя
Steppe
Друг Кота
Сообщения: 4812
Зарегистрирован: Вс сен 17, 2017 17:44:21
Откуда: 51.7727, 55.0988. Высота над морем 107 м. До границы 161 км.

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

Сообщение Steppe »

[uquote="yor",url="/forum/viewtopic.php?p=4459720#p4459720"]Может подскажете замену нога в ногу pic16f648 с двумя 16 бит таймерами?[/uquote]
Сделайте переходник. В любом случае программу переделывать надо, с одного камушка на другой не перенесешь без изменений.
Аватара пользователя
Zikon
Встал на лапы
Сообщения: 92
Зарегистрирован: Вт фев 28, 2017 08:13:31
Откуда: Свердловская обл.

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

Сообщение Zikon »

для замены pic16f648a

в "улучшенной среднемладшей" совместимые по ногам полностью
pic16f1826 - но 2+1 таймера (8b-16b)
pic16f1827(47) - но у них 4+1 таймера (8b-16b)
система команд - гораздо лучше и переферии много


а среди pic18 питание также, а порты по другому
pic18f1220/1320 - 1+3 таймера (8b-16b)
pic18f1230/1330 - 0+2 таймера (8b-16b)
выводы для программирования совместимы
цена только заоблачная ввиду старости - наверное
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

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

Сообщение yor »

Спасибо, прикину.
yor
Говорящий с текстолитом
Сообщения: 1679
Зарегистрирован: Сб янв 19, 2008 23:57:27

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

Сообщение yor »

Открыл Америку, придумал как сделать 16-бит таймер из одного 8-ми битного)) Всё очень просто, организуем дополнительный регистр, который инкрементируем в каждом цикле. Ну и собственно всё как у взрослого. Только прерывания часто сыпать будут.
Так что решил я обратить внимание на pic18f1220/1320 и pic18f1230/1330. А даташиты на них старые, старше чем на 16f648. И микрочип вроде не даёт скачать с их сайта. Где взять, поделитесь пож-ста.
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

Аватара пользователя
Steppe
Друг Кота
Сообщения: 4812
Зарегистрирован: Вс сен 17, 2017 17:44:21
Откуда: 51.7727, 55.0988. Высота над морем 107 м. До границы 161 км.

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

Сообщение Steppe »

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

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

Сообщение BOB51 »

Вот...
39605F_pic18f1220_1320_angl.pdf
(4.68 МБ) 67 скачиваний
80324b_errata.pdf
(242.43 КБ) 58 скачиваний
80244d_err_rev_d0.pdf
(154.75 КБ) 53 скачивания
80160f_err_rev_b1.pdf
(198.44 КБ) 62 скачивания
80175e_err_rev_b4.pdf
(183.58 КБ) 52 скачивания
Добавлено after 1 minute 42 seconds:
И до полного комплекта:
39592f_memr_prog.pdf
(284.08 КБ) 53 скачивания
8)
Ответить

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