Вопросы начинающих PIC ASM
- Steppe
- Друг Кота
- Сообщения: 4812
- Зарегистрирован: Вс сен 17, 2017 17:44:21
- Откуда: 51.7727, 55.0988. Высота над морем 107 м. До границы 161 км.
Re: Вопросы начинающих PIC ASM
[uquote="BOB51",url="/forum/viewtopic.php?p=4592180#p4592180"]Многое ....[/uquote]
Я задал довольно конкретный вопрос. Вы мне написали целую обобщающую главу.
Про подключение импульсных трансформаторов к ногам МК [uquote="BOB51",url="/forum/viewtopic.php?p=4592180#p4592180"]Применяем варианты ключей с высокоомным входом (эмиттерные повторители) и гальванразвязки на оптронах или импульсных трансформаторах..[/uquote]
даже комментировать не буду.
Как впрочем и все остальное.
Применял как-то dsPIC33FJхххх (80-pin TQFP) c питанием 3,3 В. Навешивал на него много чего. Еле ног хватило. Получился такой контроллер технологического оборудования со многими функциями и т.д. Выбор пал на эту серию из-за встроенного интерфейса с квадратурным энкодером.
Я задал довольно конкретный вопрос. Вы мне написали целую обобщающую главу.
Про подключение импульсных трансформаторов к ногам МК [uquote="BOB51",url="/forum/viewtopic.php?p=4592180#p4592180"]Применяем варианты ключей с высокоомным входом (эмиттерные повторители) и гальванразвязки на оптронах или импульсных трансформаторах..[/uquote]
даже комментировать не буду.
Как впрочем и все остальное.
Применял как-то dsPIC33FJхххх (80-pin TQFP) c питанием 3,3 В. Навешивал на него много чего. Еле ног хватило. Получился такой контроллер технологического оборудования со многими функциями и т.д. Выбор пал на эту серию из-за встроенного интерфейса с квадратурным энкодером.
- Реклама
Re: Вопросы начинающих PIC ASM
[uquote="yor",url="/forum/viewtopic.php?p=4592171#p4592171"]А, я понял! ... Искажение - это всего-навсего просадка вывода. И она актуальна в течение нескольких ближайших тактов, или больше, в зависимости от.[/uquote] Если речь всё ещё о RMW, то - нет.
Эта просадка актуальна в течение каких-то наносекунд, а то и меньше, пока входные емкости зарядятся. И я согласен со Steppe, искажать логические уровни мощными нагрузками... ну это возможно только лишь в нарушение спецификаций, не читая их и не зная ничего. Например, цепляясь к древней 145-ой серии бездумно, можно исказить как угодно, да, там требование к нагрузке - мегаом и более. И если имеются ввиду такие специфичные случаи, то спецификация в руки.
Добавлено after 4 minutes 11 seconds:
[uquote="BOB51",url="/forum/viewtopic.php?p=4592180#p4592180"]Классика разработки внешней схемотехники 30-40 летней давности не отменялась.[/uquote] Не 30-40, а вообще. Правила есть правила, их соблюдать надо всегда.
Но причём тут RMW?
Эта просадка актуальна в течение каких-то наносекунд, а то и меньше, пока входные емкости зарядятся. И я согласен со Steppe, искажать логические уровни мощными нагрузками... ну это возможно только лишь в нарушение спецификаций, не читая их и не зная ничего. Например, цепляясь к древней 145-ой серии бездумно, можно исказить как угодно, да, там требование к нагрузке - мегаом и более. И если имеются ввиду такие специфичные случаи, то спецификация в руки.
Добавлено after 4 minutes 11 seconds:
[uquote="BOB51",url="/forum/viewtopic.php?p=4592180#p4592180"]Классика разработки внешней схемотехники 30-40 летней давности не отменялась.[/uquote] Не 30-40, а вообще. Правила есть правила, их соблюдать надо всегда.
Но причём тут RMW?
Re: Вопросы начинающих PIC ASM
Речь о том, что возможно (но в большинстве простых конструкций редко попадается).
Конкретика зависит и от поколения МК и от квалификации выполняющего проект.
Смотрим название данной ветки.

Конкретика зависит и от поколения МК и от квалификации выполняющего проект.
Смотрим название данной ветки.
Re: Вопросы начинающих PIC ASM
А в сложных - часто? 
- Steppe
- Друг Кота
- Сообщения: 4812
- Зарегистрирован: Вс сен 17, 2017 17:44:21
- Откуда: 51.7727, 55.0988. Высота над морем 107 м. До границы 161 км.
Re: Вопросы начинающих PIC ASM
[uquote="Martian",url="/forum/viewtopic.php?p=4592206#p4592206"]И я согласен со Steppe, искажать логические уровни мощными нагрузками... ну это возможно только лишь в нарушение спецификаций,[/uquote]
Мы же не китайцы, которые вешают на ноги МК напрямую аноды/катоды семисегментных индикаторов, да еще и опрос клавиатурных кнопок одновременно туда же.
Мы же не китайцы, которые вешают на ноги МК напрямую аноды/катоды семисегментных индикаторов, да еще и опрос клавиатурных кнопок одновременно туда же.
- Реклама
Re: Вопросы начинающих PIC ASM
Это уже не вопросы ассемблера и системы команд.
Абсолютным решением вопроса является применение дополнительных буферных регистров в ОЗУ - одного под исходные данные для вывода в порт другого для хранения текущих данных, считанных из линий порта. Медленно, но полностью контролируемо.
"Стандартная средне младшая" это совсем не 18я или более "старшие".
А уж если и это не помогает - тогда лезем в дебри документации и схемотехники.

Абсолютным решением вопроса является применение дополнительных буферных регистров в ОЗУ - одного под исходные данные для вывода в порт другого для хранения текущих данных, считанных из линий порта. Медленно, но полностью контролируемо.
"Стандартная средне младшая" это совсем не 18я или более "старшие".
А уж если и это не помогает - тогда лезем в дебри документации и схемотехники.
Re: Вопросы начинающих PIC ASM
хм... а почему сразу не залезть в дебри документации и схемотехники? Когда мне здесь указали на ошибочность понимания работы порта, у меня сразу всё стало просто и логично. И если бы раннее сразу залез в дебри (точнее, понял бы их верно), то и сразу было бы проще.
Re: Вопросы начинающих PIC ASM
Документация на сегодня это несколько буков страниц за 500 да на иностранном (включая иероглифы).
Вычитывать её в обязательном порядке разве что профессионалам под силу.
Чаще читаем общую часть в обязательном порядке и уже глубоко "по прециденту" встречи с неясной ситуацией.
Иначе "мозги выкипят" (Да и при нынешней частоте смены поколений и семейств МК ресурса мозгов на ВСЁ не хватит).

Вычитывать её в обязательном порядке разве что профессионалам под силу.
Чаще читаем общую часть в обязательном порядке и уже глубоко "по прециденту" встречи с неясной ситуацией.
Иначе "мозги выкипят" (Да и при нынешней частоте смены поколений и семейств МК ресурса мозгов на ВСЁ не хватит).
Re: Вопросы начинающих PIC ASM
ну... ну... ну тогда я не знаю, как быть 
- Steppe
- Друг Кота
- Сообщения: 4812
- Зарегистрирован: Вс сен 17, 2017 17:44:21
- Откуда: 51.7727, 55.0988. Высота над морем 107 м. До границы 161 км.
Re: Вопросы начинающих PIC ASM
[uquote="BOB51",url="/forum/viewtopic.php?p=4592230#p4592230"]Документация на сегодня это несколько буков страниц за 500 да на иностранном (включая иероглифы).
Вычитывать её в обязательном порядке разве что профессионалам под силу.
Чаще читаем общую часть в обязательном порядке и уже глубоко "по прециденту" встречи с неясной ситуацией.
Иначе "мозги выкипят" (Да и при нынешней частоте смены поколений и семейств МК ресурса мозгов на ВСЁ не хватит).
[/uquote]
Позвольте мне не согласиться с таким утверждением.
МК меняются не так часто, как вам кажется. У семейств существует преемственность. Если понадобиться разобраться с определенным интерфейсом, к примеру CAN, DMA или другими, то читай соответствующие главы. Вычитывать нужно в обязательном порядке. И что такое "общая часть" в datasheet? Первые несколько страниц документа?
Не разбираясь с работой "модулей", интерфейсов, что находятся на борту любого МК, ничего путного никогда не создать.
Вычитывать её в обязательном порядке разве что профессионалам под силу.
Чаще читаем общую часть в обязательном порядке и уже глубоко "по прециденту" встречи с неясной ситуацией.
Иначе "мозги выкипят" (Да и при нынешней частоте смены поколений и семейств МК ресурса мозгов на ВСЁ не хватит).
Позвольте мне не согласиться с таким утверждением.
МК меняются не так часто, как вам кажется. У семейств существует преемственность. Если понадобиться разобраться с определенным интерфейсом, к примеру CAN, DMA или другими, то читай соответствующие главы. Вычитывать нужно в обязательном порядке. И что такое "общая часть" в datasheet? Первые несколько страниц документа?
Не разбираясь с работой "модулей", интерфейсов, что находятся на борту любого МК, ничего путного никогда не создать.
Re: Вопросы начинающих PIC ASM
Читать учебники по навыкам сбора, систематизации и анализу информации.Martian писал(а):ну... ну... ну тогда я не знаю, как быть
Steppe
В каждом МК всегда будут неиспользуемые в конкретной конструкции режимы работы и аппаратные модули.
Перечитывать ВСЁ в таком случае весьма избыточно.
Насчёт смены поколений МК и семейств (даже с учётом некоторой преемственности) то минимум раз в год новинки в серию запускаются. Функции начальной конфигурации давненько уже вручную мало кто делает - пользуются готовым софтом не вникая в подробности (т.е. не вычитывая документацию МК). И только при возникновении проблем к букам обращаются. И плюсы в том и минусы.
- КРАМ
- Друг Кота
- Сообщения: 25222
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Вопросы начинающих PIC ASM
[uquote="Steppe",url="/forum/viewtopic.php?p=4592236#p4592236"]Позвольте мне не согласиться с таким утверждением.
....... ничего путного никогда не создать.[/uquote]
"Не ищи дурее себя..." (с)
В очередной раз повторяю поговорку моего тестя...
Ваш опыт канешна бесценен, но недостаточен, чтобы нравоучить.
Классический случай проблемы связанной с отсутствием входной защелки В СТАРЫХ МК Микрочипа - программная эмуляция 1Wire и I2C.
Не нужно просаживать выходы, достаточно применить open drain. Рассказать вам как это происходит?
Абисняю.
Ноль пишут в выходную защелку порта PORTx, а вывод осуществляют с помощью TRISx.
Надеюсь вы догадались как быстро в порт будет перезаписана единица вместо нуля?
Ну и в догон напомню вашему бесценному опыту, что в 18-х пиках и, тем более, в дспиках всегда имеется отдельная защелка у выхода и отдельная у входа. Поэтому там такого конфликта не может быть по определению.
[uquote="yor",url="/forum/viewtopic.php?p=4592171#p4592171"]А, я понял![/uquote]
Нет, вы ничего не поняли.
....... ничего путного никогда не создать.[/uquote]
"Не ищи дурее себя..." (с)
В очередной раз повторяю поговорку моего тестя...
Ваш опыт канешна бесценен, но недостаточен, чтобы нравоучить.
Классический случай проблемы связанной с отсутствием входной защелки В СТАРЫХ МК Микрочипа - программная эмуляция 1Wire и I2C.
Не нужно просаживать выходы, достаточно применить open drain. Рассказать вам как это происходит?
Абисняю.
Ноль пишут в выходную защелку порта PORTx, а вывод осуществляют с помощью TRISx.
Надеюсь вы догадались как быстро в порт будет перезаписана единица вместо нуля?
Ну и в догон напомню вашему бесценному опыту, что в 18-х пиках и, тем более, в дспиках всегда имеется отдельная защелка у выхода и отдельная у входа. Поэтому там такого конфликта не может быть по определению.
[uquote="yor",url="/forum/viewtopic.php?p=4592171#p4592171"]А, я понял![/uquote]
Нет, вы ничего не поняли.
Re: Вопросы начинающих PIC ASM
что-то я упускаю суть и у меня создаётся ощущение, что мы все доказываем одно и то же. Ещё больше запутывая yor
- Steppe
- Друг Кота
- Сообщения: 4812
- Зарегистрирован: Вс сен 17, 2017 17:44:21
- Откуда: 51.7727, 55.0988. Высота над морем 107 м. До границы 161 км.
Re: Вопросы начинающих PIC ASM
[uquote="КРАМ",url="/forum/viewtopic.php?p=4592242#p4592242"]"Не ищи дурее себя..." (с)
В очередной раз повторяю поговорку моего тестя...[/uquote]
Вот на этой сладкой парочке и остановимся...
В очередной раз повторяю поговорку моего тестя...[/uquote]
Вот на этой сладкой парочке и остановимся...
Re: Вопросы начинающих PIC ASM
Разновидность (вариации на тему) DDS?...

Re: Вопросы начинающих PIC ASM
Это прямой цифровой синтез? Я и слов таких не знаю))
Человек изобрести может всё, но кто ж виноват, что всё изобретено до нас))
Человек изобрести может всё, но кто ж виноват, что всё изобретено до нас))
Re: Вопросы начинающих PIC ASM
Ну вроде того...
таймер 8 разрядный счетные тики дает, а программный обработчик заданную частоту высчитывает.

таймер 8 разрядный счетные тики дает, а программный обработчик заданную частоту высчитывает.
Re: Вопросы начинающих PIC ASM
Есть ли какие тонкости с WDT, или просто настроить его и сбрасывать по ходу программы, пока не истекло время?
- Steppe
- Друг Кота
- Сообщения: 4812
- Зарегистрирован: Вс сен 17, 2017 17:44:21
- Откуда: 51.7727, 55.0988. Высота над морем 107 м. До границы 161 км.
Re: Вопросы начинающих PIC ASM
[uquote="yor",url="/forum/viewtopic.php?p=4594214#p4594214"]Есть ли какие тонкости с WDT, или просто настроить его и сбрасывать по ходу программы, пока не истекло время?[/uquote]
Есть. Все они описаны в datasheet
Есть. Все они описаны в datasheet
Re: Вопросы начинающих PIC ASM
[uquote="КРАМ",url="/forum/viewtopic.php?p=4436367#p4436367"]избегайте блокирующего кода. То есть такого кода, который занимает много времени на свое исполнение. Любой код должен вызываться из пустого цикла, исполняться и возвращать управление в пустой цикл. Пустой цикл - это основной внешний цикл работы МК из которого вызываются все функции.
На ассемблере PIC-ов это выглядит так:
На фоне работы этого кода могут генерироваться и вызываться прерывания, обработчики которых являются отдельным кодом.[/uquote]Это пример идеальной программы? В смысле сферической в вакууме? В мало-мальски сложной программе скорей всего (и даже точно) надо будет по результатам выполнения FuncN прыгать в разные места, крутиться и вертеться как волчок. Мне кажется, что очень трудно, если вообще возможно, оформить чисто в таком виде. Без вставок проверок условий и т.д. рутины.
Вопрос вызван вот чем:
Не могу сообразить, как после проверки btfss пройти на два последовательных вызова ПП? После первой не надо вызывать вторую. Но если вставить goto, то на него сразу уйдёт вместо второго call. Подскажите пож-ста, какая тут есть хитрость.
На ассемблере PIC-ов это выглядит так:
Код: Выделить всё
Superloop:
call Func1
call Func2
call Func3
..
call FuncN
goto Superloop
Func1:
......
return
Func2:
......
return
Func3:
......
return
...................
...................
...................
FuncN:
......
return
Вопрос вызван вот чем:
Код: Выделить всё
; RA2 изменил уровень, как? Спад или подъём? Факт смены уровня подразумавает инверсию D1 in Dlvl
; Просто инвертируем его, если был 0 -> 1 && call RearFront, 1 -> 0 && call FwdFront
<------>movlw<->0x4<---><------>; вес D1
<------>xorwf<->Dlvl,f<><------>; инверсия D1
<------>btfss<->Dlvl,D1
<------>call<-->FwdFront
[<----->goto<-->scanD]
<------>call<-->RearFront

