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

Поклонники продукции Microchip Technology Inc тусуются тут.
yor
Говорящий с текстолитом
Сообщения: 1677
Зарегистрирован: Сб янв 19, 2008 23:57:27

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

Сообщение yor »

[uquote="valentinovich",url="/forum/viewtopic.php?p=4435846#p4435846"]в виде графа[/uquote]Дайте хоть одним глазком посмотреть на любой законченный простейший алгоритм в виде графа. Или это блок-схема, геометрические фигуры со стрелочками да-нет?
Реклама
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25212
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

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

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

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

Сообщение BOB51 »

[uquote="yor",url="/forum/viewtopic.php?p=4436034#p4436034"][uquote="valentinovich",url="/forum/viewtopic.php?p=4435846#p4435846"]в виде графа[/uquote]Дайте хоть одним глазком посмотреть на любой законченный простейший алгоритм в виде графа. Или это блок-схема, геометрические фигуры со стрелочками да-нет?[/uquote]
К примеру вот такое:
https://img.radiokot.ru/files/20529/35onhyk9ic.GIF
:roll:
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25212
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

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

[uquote="BOB51",url="/forum/viewtopic.php?p=4436087#p4436087"]К примеру вот такое:[/uquote]
Это не граф, а блок схема алгоритма.
Граф выглядит так:
Изображение

https://ru.wikipedia.org/wiki/Конечный_автомат
Реклама
Эиком - электронные компоненты и радиодетали
yor
Говорящий с текстолитом
Сообщения: 1677
Зарегистрирован: Сб янв 19, 2008 23:57:27

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

Сообщение yor »

Блок-схема тоже состоит из узлов-состояний и ветвей-переходов. Я не спорю, что она является графом, но всё-таки.
А что видно из этого графа, это какая-то общая абстрактная картинка? Вразумительный (пусть простейший) алгоритм в виде графа можно увидеть? Где там конкретные условия и данные? В инете только эти мигающие кружки, никакой конкретики.
Смысл узлов 2 и 3, просто буфера?
Реклама
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25212
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

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

[uquote="yor",url="/forum/viewtopic.php?p=4436117#p4436117"]Блок-схема тоже состоит из узлов-состояний и ветвей-переходов.[/uquote]
Нет. Блок схема это последовательность операций. Никаких состояний там нет. Блок схема является структурой кода. Граф никак не отображает код - не фантазируйте.
Автомат может любое время находится в узле. Блок схема никаких узлов вообще не имеет.

Добавлено after 4 minutes 24 seconds:
[uquote="yor",url="/forum/viewtopic.php?p=4436117#p4436117"]Смысл узлов 2 и 3[/uquote]
Я привел ссылку на статью в википедии. Добавлю: https://ru.wikipedia.org/wiki/Теория_графов
Реклама
yor
Говорящий с текстолитом
Сообщения: 1677
Зарегистрирован: Сб янв 19, 2008 23:57:27

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

Сообщение yor »

Это долго и тяжело вникать. Займусь на досуге. Это может помочь в написании именно кода, в выработке алгоритма? Кто-то графами пользуется в программировании?
Аватара пользователя
asvhmao
Друг Кота
Сообщения: 3716
Зарегистрирован: Чт мар 07, 2013 20:39:17
Откуда: Краснодар

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

Сообщение asvhmao »

BOB51 писал(а):Для того, чтобы чего-то обсуждать на уровне ассемблерных программ надо не "теорию с потолка" иметь в обсуждении, а конкретную схему устройства и описание того, что данное устройство должно выполнять.
Ибо возможных решений огромное множество.
В том то и дело что пока теория. Поэтому и интересны все эти огромные множества решений.
Схемы тоже виртуальные в протеусе, рисуй какие хочешь. По тех заданию допустим диапазон частот от 0 до 3000 Гц, шаг 50 или 100 Гц. Заполнение окна 50/50 , пока без выкрутасов.

Изображение
uldemir писал(а):Вообще, представляя ваши затеи, скажу что уж больно тоскливый вы кристалл выбрали.
Для обучения, наверное, само то. Камней различных много. Куча примеров, вроде таких как на 8 битах решать задачки с бОльшими значениями. Пока ещё путаюсь в этом ногодрыге, поэтому ассемблер как-то ближе к кубиками рубикам, единичкам ноликам. А там может пока наиграюсь с ними, появятся новые игрушки с интуитивно понятным интерфейсом, где и коды писать не надо будет. :))
Ваши примеры из раздела плисок запоминаю, здорово выручают. :beer: А подсмотренные решения на разных платформах, помогают по другому смотреть на ранее поставленные задачи, как для новичка.
valentinovich писал(а):Причём алгоритм желателен не описанием типа словесного ля-ля и даже не в каком либо языке, а сначала, к примеру, в виде графа. И когда решение вашей задачи будет соответствовать нужной логике процесса в данном виде, вот тогда уже можно будет давать какие-то рекомендации
КРАМ писал(а):Блок схема это последовательность операций. Никаких состояний там нет. Блок схема является структурой кода. Граф никак не отображает код
Что-то совсем запутался. У меня граф будет генератор таблица и две кнопочки? :))

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

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

Сообщение BOB51 »

С шагом генератора надо внимательно смотреть...
Не задавать то, что невозможно получить простым делением базовой частоты (то уже DDS - совсем иная бяка).
В остальном -
опорный генератор интервалов (на аппаратном таймере и прерываниях)
сканер кнопок (может на втором таймере или используем один общий - смотреть надо)
счетчики генератора звуковых частот с изменяемым при помощи кнопок коэффициентом - эти можно и программные.
обработчик кнопок (инкремент/декремент содержимого программных постделителей)
:roll:
Аватара пользователя
valentinovich
Держит паяльник хвостом
Сообщения: 999
Зарегистрирован: Ср окт 04, 2017 20:47:40

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

Сообщение valentinovich »

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

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

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

[uquote="yor",url="/forum/viewtopic.php?p=4436191#p4436191"]Кто-то графами пользуется в программировании?[/uquote]
Забудьте. Вам графы абсолютно не нужны. Блок схема вам нужна, а не граф.
Аватара пользователя
valentinovich
Держит паяльник хвостом
Сообщения: 999
Зарегистрирован: Ср окт 04, 2017 20:47:40

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

Сообщение valentinovich »

Главное человек сам начал находить что-то, что ему показалось правильным и есть таковым!
И это есть хорошо. Только yor, больше уверенности в ваших рассуждениях, которые должны со временем перерасти в возможность самостоятельно управлять самообучением.
:beer:
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25212
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

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

[uquote="asvhmao",url="/forum/viewtopic.php?p=4436226#p4436226"]Что-то совсем запутался. У меня граф будет генератор таблица и две кнопочки?[/uquote]
Дались вам эти графы... :facepalm:
Вы изобразили блок схему аппаратного прототипа. Она вам тоже не нужна.
Вам для начала лучше разделить программирование энкодера и программирование генератора. Тем более, что это две совершенно разных и, что важно, совершенно независимых задачи.
Поэтому выберите одну из них и реализуйте. Потом реализуете вторую. Тоже отдельно. Тогда внезапно выясните, что их простое объединение даст конечный результат. Только избегайте блокирующего кода. То есть такого кода, который занимает много времени на свое исполнение. Любой код должен вызываться из пустого цикла, исполняться и возвращать управление в пустой цикл. Пустой цикл - это основной внешний цикл работы МК из которого вызываются все функции.
На ассемблере PIC-ов это выглядит так:

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

Superloop:
        call    Func1
        call    Func2
        call    Func3
..
        call    FuncN
        goto  Superloop

Func1:
......
       return

Func2:
......
       return

Func3:
......
       return

...................
...................
...................

FuncN:
......
       return
На фоне работы этого кода могут генерироваться и вызываться прерывания, обработчики которых являются отдельным кодом.
yor
Говорящий с текстолитом
Сообщения: 1677
Зарегистрирован: Сб янв 19, 2008 23:57:27

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

Сообщение yor »

[uquote="valentinovich",url="/forum/viewtopic.php?p=4436340#p4436340"]уже сами начали двигаться в правильном направлении. :)[/uquote]Я давно уже в этом направлении, но linux в некоторых областях осложняет жизнь. Но я не сдаюсь))

[uquote="valentinovich",url="/forum/viewtopic.php?p=4436340#p4436340"]Из учебного пособия про что есть что:[/uquote]Это я помню со школы, уже 30 лет как))

[uquote="valentinovich",url="/forum/viewtopic.php?p=4436340#p4436340"]может быть напрямую переведен в программу.[/uquote]Напрямую не напрямую, я согласен даже вручную закодить, но вот прогнать алгоритм пошагово по блок-схеме - было бы неплохо, чтоб не усугублять кодировочными затыками. Я искал, но под линукс глухо: https://unixforum.org/viewtopic.php?t=146260 А под винду есть такое?

[uquote="КРАМ",url="/forum/viewtopic.php?p=4436341#p4436341"]Забудьте. Вам графы абсолютно не нужны. Блок схема вам нужна, а не граф.[/uquote]Я так и знал, но кто-то тут мне стал про графы втирать((
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25212
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

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

[uquote="yor",url="/forum/viewtopic.php?p=4436414#p4436414"]кто-то тут мне стал про графы втирать(([/uquote]
Не грубите. Про графы Валентинович упомянул всего один раз. Он имел ввиду не граф, а блок-схему. Это сразу и выяснилось. Ваше возмущение не имеет смысла.
[uquote="yor",url="/forum/viewtopic.php?p=4436414#p4436414"]но вот прогнать алгоритм пошагово по блок-схеме - было бы неплохо, чтоб не усугублять кодировочными затыками[/uquote]
Это фуфло. Совершенно лишнее. Подавляющее большинство алгоритмов не имеет сложных блок схем.
Проверять в симуляторе 10 кубиков просто смешно. Они могут работать в симуляторе и не работать в реальности, а так же наоборот. Симулировать время достаточно сложно (не в смысле рисования кубика с обозначением, а алгоритмически). Алгоритмы с обратными связями очень чувствительны к задержкам. Например рекурсивные фильтры.
yor
Говорящий с текстолитом
Сообщения: 1677
Зарегистрирован: Сб янв 19, 2008 23:57:27

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

Сообщение yor »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4436418#p4436418"][uquote="yor",url="/forum/viewtopic.php?p=4436414#p4436414"]но вот прогнать алгоритм пошагово по блок-схеме - было бы неплохо, чтоб не усугублять кодировочными затыками[/uquote]
Это фуфло. Совершенно лишнее. Подавляющее большинство алгоритмов не имеет сложных блок схем.
Проверять в симуляторе 10 кубиков просто смешно.[/uquote]Вот уже 27 кубиков, не считая начала и конца. И это далеко не самый сложный алгоритм. Может быть и под пятьдесят и под сотню. И перекрестий погуще и запутаннее. Я, конечно, не профи, и мне было бы удобнее, но это мои проблемы. Если кто гигант мысли, то конечно, можно крутить в уме тысячу перекрестий. Я не гигант, но стремлюсь))
https://konspekta.net/lektsiiorgimg/baz ... age002.gif

Не зря ведь сделали Дракон-редактор. Кому-то понадобилось.

[uquote="КРАМ",url="/forum/viewtopic.php?p=4436418#p4436418"]Они могут работать в симуляторе и не работать в реальности, а так же наоборот. Симулировать время достаточно сложно (не в смысле рисования кубика с обозначением, а алгоритмически). Алгоритмы с обратными связями очень чувствительны к задержкам. Например рекурсивные фильтры.[/uquote]Могут. Но смысл - только проверить логику, временны́е отношения можно учитывать при кодировании. И если что не так, оптимизировать логику.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25212
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

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

[uquote="yor",url="/forum/viewtopic.php?p=4436439#p4436439"]Вот уже 27 кубиков, не считая начала и конца.[/uquote]
Практика показывает, что сложная блок схема, как правило, является результатом бездарного алгоритма и не понимания физического смысла процессов. Есть масса способов свести сию паутину к простой таблице или матрице таблиц. Микроконтроллеры не любят кучи if-ов. Проверка условий (ветвление) - самое ресурсоемкое мероприятие.
Плюс к этому, такого рода каракатица плохо читаема, а значит и плохо поддерживаема.

Добавлено after 4 minutes 10 seconds:
[uquote="yor",url="/forum/viewtopic.php?p=4436439#p4436439"]смысл - только проверить логику, временны́е отношения можно учитывать при кодировании.[/uquote]
Это наивная чушь. Впрочем, каждый волен делать глупости по своему разумению.
Учебный софт позволяющий симулировать блок схему - всего лишь учебный софт. Он практически бесполезен в реальности.
Аватара пользователя
valentinovich
Держит паяльник хвостом
Сообщения: 999
Зарегистрирован: Ср окт 04, 2017 20:47:40

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

Сообщение valentinovich »

КРАМ писал(а):yor писал(а):
но вот прогнать алгоритм пошагово по блок-схеме - было бы неплохо, чтоб не усугублять кодировочными затыками

Это фуфло. Совершенно лишнее. Подавляющее большинство алгоритмов не имеет сложных блок схем.
Не знам кому как, но здесь я согласен с КРАМ, но -
yor
Я искал, но под линукс глухо: https://unixforum.org/viewtopic.php?t=146260 А под винду есть такое?
и коль сильно хоцца и вы "не ищите лёгких путей", :) то вот на вскидку (правда может вы это и видали, коль даже до Дракон-редактора дошли и ознакомились со что такое графические языки программирования):
Спойлерhttps://yandex.ru/clck/jsredir?bu=es6q& ... me=1410204

https://remnabor.net/kompilyator-blok-shem-po-kodu-c-2

https://habr.com/ru/articles/320184/

https://github.com/Winster332/Studio-Flowcharts

https://www.aivosto.com/visustin-ru.html
P.S. Про что либо под линукс я не в курсе, мне он в своё время как-то не пришёлся с гемором поиска и установки программ под него.
Аватара пользователя
asvhmao
Друг Кота
Сообщения: 3716
Зарегистрирован: Чт мар 07, 2013 20:39:17
Откуда: Краснодар

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

Сообщение asvhmao »

Просматриваю разные тексты, иногда попадается команда movfw это тоже самое что и movf или есть отличия?
Спойлер

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

FROM       movwf        AAW            ; Сохранение аккуммулятора
           swapf        STATUS,0
           movwf        STW            ; Сохранение статуса
           comf       PortC
           clrf       TMR1L
           movfw      AA2
           movwf      TMR1H
           movfw      AA1
           movwf      TMR1L
           clrf       PIR1             ; Сброс флага
           movfw       ATTA
           call        TABLE2
           movwf       AA1
           movfw       ATTA
           bsf         PCLATH,0
           call        TABLE3
           bcf         PCLATH,0
           movwf       AA2
           swapf        STW,0          ; Восстановить статус
           movwf        STATUS
           swapf        AAW,1          ; Восстановить аккум
           swapf        AAW,0 
           retfie
           end
„Выживает не самый сильный и не самый умный, а тот, кто лучше всех приспосабливается к изменениям.“
— Чарлз Дарвин
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7359
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

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

Сообщение uldemir »

Movfw это макрос, для тех кому лень ручками написать movf reg, w. Вроде так...
4.1.4 Movfw Pseudo Instruction
The movfw pseudo instruction implemented by MPASM is not implemented in the MPLAB XC8 assemblers. You will
need to use the standard PIC instruction that performs an identical function. Note that the MPASM instruction:
movfw foobar
maps directly to the standard PIC instruction:
movf foobar,w
Ответить

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