Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

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

Вс авг 06, 2023 08:40:38

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

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

Вс авг 06, 2023 09:03:21

я не понимаю прерываний.....

Этим следовало бы и ограничится, а не продолжать говорить всякую хрень.
Прерывания вообще не нужны для счета времени. Прерывания нужны как РЕАКЦИЯ НА СОБЫТИЯ. Не важно какие.
Это может быть готовность данных периферии (АЦП, УАРТ, SPI, I2C и т.д.), Это может быть готовность периферии ПРИНЯТЬ новую порцию данных. Это может быть реакция на внешнее событие, например срабатывание датчика или переход через ноль напряжения сети...
А счет времени ведет ТАЙМЕР. И ему в этом процессе вообще не нужны никакие прерывания. Он вообще ничего не знает о прерываниях с той лишь разницей, что он САМ МОЖЕТ ИХ ГЕНЕРИРОВАТЬ при определенных обстоятельствах.
Что касается процесса обработки событий от разных источников, то либо нужно мириться с ограничениями архитектуры с фиксированным вектором (семафор в начале обработчика и последовательная обработка в порядке этого семафора), либо переходить на МК с индивидуальными векторами на каждый источник прерываний (по типу PIC18Q), либо переходить на МК с контроллером вложенных прерываний (PIC24, dsPIC33, PIC32, PIC32C или вообще любой другой ARM иных производителей).

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

Вс авг 06, 2023 10:24:44

Тоже не понятна идея использовать 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 раз.

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

Вс авг 06, 2023 10:33:58

КРАМ писал(а): Прерывания нужны как РЕАКЦИЯ НА СОБЫТИЯ

так вот именно, что сразу на все события одним процессором не отреагируешь, поэтому "все в очередь", типа закончу одно, займусь следующим...(да, процессор не из новейших и опыт далеко не программиста)
===
для себя я представлял, что по прерыванию должен следовать мгновенный переход на его отработку, а если мгновенный не требуется, то тогда обработка запросов в свободном месте программы, когда все "внутренние" процессы завершены...

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

Вс авг 06, 2023 10:46:29

Ето верно: с флагом, быстрыми расчетами. А в плюсе: некоторые компиляторы/IDE (С) отказываются компилироваться при обнаружении возможных конфликтов, что избавляет от бесконечного написания кода и тестирования с вых. логических ошибок и несоответствий.
Код:
>>> Warning 216: Interrupts disabled during call to prevent re-entrancy: (...)

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

Вс авг 06, 2023 13:16:12

так вот именно, что сразу на все события одним процессором не отреагируешь, поэтому "все в очередь", типа закончу одно, займусь следующим...(да, процессор не из новейших и опыт далеко не программиста)
===
для себя я представлял, что по прерыванию должен следовать мгновенный переход на его отработку, а если мгновенный не требуется, то тогда обработка запросов в свободном месте программы, когда все "внутренние" процессы завершены...

Никаких "мгновенных" переходов не может быть ПО ОПРЕДЕЛЕНИЮ. Любой вызов обработчика прерываний связан с ЛАТЕНТНОСТЬЮ такого перехода (в разных архитектурах эта латентность разная), которая (латентность) определяется длиной конвейера АЛУ, который нужно завершить, отделив код основного цикла от кода обработчика. То есть минимум 4 машинных цикла на такой переход придется отдать. Далее последует сохранение контекста, которое в обсуждаемой архитектуре займет еще 4 машинных цикла, затем семафор - еще 4 цикла... И лишь потом код собственно обработчика.
Механизм прерываний не слишком быстр. Им не реализовать строгий синхронизм. Поэтому синхронизацию нужно строить на встроенных аппаратных фичах МК.

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

Ср авг 09, 2023 16:03:03

Правильно ли я понимаю, что подсчёт длительности с помощью 8бит таймера до прерывания в тактах OSC/4 выглядит так: Kpre*FF*Kpost+TMR?
А с дискретностью тут не очень, она равна Kpre*Kpost?

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

Ср авг 09, 2023 16:30:15

с дискретностью тут не очень

Именно так. Патамушта выбирать МК нужно под задачу, а не заниматься мазохизмом в неприспособленных условиях.

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

Ср авг 09, 2023 20:35:09

Может подскажете замену нога в ногу pic16f648 с двумя 16 бит таймерами?

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

Ср авг 09, 2023 20:58:12

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

МК на 18 выводов не много. Такого МК нет.
PIC18F1220/1320, некоторые контакты совпадают, но номера входов/выходов с 16F648A разные.

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

Ср авг 09, 2023 21:19:45

Может подскажете замену нога в ногу

Зачем нога в ногу? :dont_know: Вы модернизируете серийное изделие?

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

Ср авг 09, 2023 22:02:21

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

Мелкосерийное)) У меня пять изделий, и старая программа без исходников уже на них не пойдёт. Если вдруг придётся вернуться. Так что повоюем пока. Ради повышения квалификации в том числе. В принципе, варианты есть. Пускать друг за другом два 8бит таймера без делителей, например. Использовать один 16-битный на всё про всё.

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

Чт авг 10, 2023 18:47:33

Есть смысл посмотреть чего есть в "улучшенной среднемладшей" в смысле подобия корпусировки и улучшенного содержимого.....
:roll:

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

Чт авг 10, 2023 20:09:33

Может подскажете замену нога в ногу pic16f648 с двумя 16 бит таймерами?

Сделайте переходник. В любом случае программу переделывать надо, с одного камушка на другой не перенесешь без изменений.

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

Пт авг 11, 2023 07:30:57

для замены 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)
выводы для программирования совместимы
цена только заоблачная ввиду старости - наверное

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

Пт авг 11, 2023 12:20:54

Спасибо, прикину.

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

Пн мар 04, 2024 10:30:06

Открыл Америку, придумал как сделать 16-бит таймер из одного 8-ми битного)) Всё очень просто, организуем дополнительный регистр, который инкрементируем в каждом цикле. Ну и собственно всё как у взрослого. Только прерывания часто сыпать будут.
Так что решил я обратить внимание на pic18f1220/1320 и pic18f1230/1330. А даташиты на них старые, старше чем на 16f648. И микрочип вроде не даёт скачать с их сайта. Где взять, поделитесь пож-ста.

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

Пн мар 04, 2024 10:53:27

Отсюда?:
PIC18F1220/1320
PIC18F1230/1330

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

Пн мар 04, 2024 10:54:34

http://www.gaw.ru/pdf/Microchip/pic18/P ... 0_1320.pdf

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

Пн мар 04, 2024 13:32:06

Вот...
39605F_pic18f1220_1320_angl.pdf
(4.68 MiB) Скачиваний: 4

80324b_errata.pdf
(242.43 KiB) Скачиваний: 6

80244d_err_rev_d0.pdf
(154.75 KiB) Скачиваний: 5

80160f_err_rev_b1.pdf
(198.44 KiB) Скачиваний: 7

80175e_err_rev_b4.pdf
(183.58 KiB) Скачиваний: 7

Добавлено after 1 minute 42 seconds:
И до полного комплекта:
39592f_memr_prog.pdf
(284.08 KiB) Скачиваний: 8

8)
Ответить