Страница 17 из 37
Re: Вопросы начинающих PIC ASM
Добавлено: Сб июн 24, 2023 15:20:00
yor
[uquote="valentinovich",url="/forum/viewtopic.php?p=4435846#p4435846"]в виде графа[/uquote]Дайте хоть одним глазком посмотреть на любой законченный простейший алгоритм в виде графа. Или это блок-схема, геометрические фигуры со стрелочками да-нет?
Re: Вопросы начинающих PIC ASM
Добавлено: Сб июн 24, 2023 15:29:14
КРАМ
Граф состоит из узлов-состояний и ветвей-переходов.
Это не блок-схема.
Графами удобно описывать машину состояний (стейт-машин) конечного автомата.
Re: Вопросы начинающих PIC ASM
Добавлено: Сб июн 24, 2023 16:18:58
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

Re: Вопросы начинающих PIC ASM
Добавлено: Сб июн 24, 2023 16:33:27
КРАМ
[uquote="BOB51",url="/forum/viewtopic.php?p=4436087#p4436087"]К примеру вот такое:[/uquote]
Это не граф, а блок схема алгоритма.
Граф выглядит так:
https://ru.wikipedia.org/wiki/Конечный_автомат
Re: Вопросы начинающих PIC ASM
Добавлено: Сб июн 24, 2023 17:06:15
yor
Блок-схема тоже состоит из узлов-состояний и ветвей-переходов. Я не спорю, что она является графом, но всё-таки.
А что видно из этого графа, это какая-то общая абстрактная картинка? Вразумительный (пусть простейший) алгоритм в виде графа можно увидеть? Где там конкретные условия и данные? В инете только эти мигающие кружки, никакой конкретики.
Смысл узлов 2 и 3, просто буфера?
Re: Вопросы начинающих PIC ASM
Добавлено: Сб июн 24, 2023 17:29:42
КРАМ
[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/Теория_графов
Re: Вопросы начинающих PIC ASM
Добавлено: Сб июн 24, 2023 19:30:28
yor
Это долго и тяжело вникать. Займусь на досуге. Это может помочь в написании именно кода, в выработке алгоритма? Кто-то графами пользуется в программировании?
Re: Вопросы начинающих PIC ASM
Добавлено: Сб июн 24, 2023 20:35:18
asvhmao
BOB51 писал(а):Для того, чтобы чего-то обсуждать на уровне ассемблерных программ надо не "теорию с потолка" иметь в обсуждении, а конкретную схему устройства и описание того, что данное устройство должно выполнять.
Ибо возможных решений огромное множество.
В том то и дело что пока теория. Поэтому и интересны все эти огромные множества решений.
Схемы тоже виртуальные в протеусе, рисуй какие хочешь. По тех заданию допустим диапазон частот от 0 до 3000 Гц, шаг 50 или 100 Гц. Заполнение окна 50/50 , пока без выкрутасов.
uldemir писал(а):Вообще, представляя ваши затеи, скажу что уж больно тоскливый вы кристалл выбрали.
Для обучения, наверное, само то. Камней различных много. Куча примеров, вроде таких как на 8 битах решать задачки с бОльшими значениями. Пока ещё путаюсь в этом ногодрыге, поэтому ассемблер как-то ближе к кубиками рубикам, единичкам ноликам. А там может пока наиграюсь с ними, появятся новые игрушки с интуитивно понятным интерфейсом, где и коды писать не надо будет.
Ваши примеры из раздела плисок запоминаю, здорово выручают.

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

Re: Вопросы начинающих PIC ASM
Добавлено: Сб июн 24, 2023 22:19:07
BOB51
С шагом генератора надо внимательно смотреть...
Не задавать то, что невозможно получить простым делением базовой частоты (то уже DDS - совсем иная бяка).
В остальном -
опорный генератор интервалов (на аппаратном таймере и прерываниях)
сканер кнопок (может на втором таймере или используем один общий - смотреть надо)
счетчики генератора звуковых частот с изменяемым при помощи кнопок коэффициентом - эти можно и программные.
обработчик кнопок (инкремент/декремент содержимого программных постделителей)

Re: Вопросы начинающих PIC ASM
Добавлено: Сб июн 24, 2023 22:44:07
valentinovich
yor
Блок-схема ... состоит из узлов-состояний и ветвей-переходов.
Вот, Имхо уже сами начали двигаться в правильном направлении.
Из учебного пособия про что есть что:
Блок-схема — это графическое представление алгоритма, рабочего процесса или процесса с различными типами блоков, представляющих различные типы шагов и стрелками, соединяющими каждые два шага или безусловно, или по определённому условию.
Это представление облегчает иллюстрацию решений известных проблем. Блок-схемы широко используются для анализа, проектирования, документирования и управления процессами или процедурами во многих областях.
Достоинства: интуитивно понятный, простой для понимания, легко находит ошибки в алгоритме, может быть напрямую переведен в программу.
Вот некий простой вид:

Re: Вопросы начинающих PIC ASM
Добавлено: Сб июн 24, 2023 22:45:50
КРАМ
[uquote="yor",url="/forum/viewtopic.php?p=4436191#p4436191"]Кто-то графами пользуется в программировании?[/uquote]
Забудьте. Вам графы абсолютно не нужны. Блок схема вам нужна, а не граф.
Re: Вопросы начинающих PIC ASM
Добавлено: Сб июн 24, 2023 22:58:53
valentinovich
Главное человек
сам начал находить что-то, что ему показалось правильным и есть таковым!
И это есть хорошо. Только
yor, больше уверенности в ваших рассуждениях, которые должны со временем перерасти в возможность самостоятельно управлять самообучением.

Re: Вопросы начинающих PIC ASM
Добавлено: Сб июн 24, 2023 23:39:59
КРАМ
[uquote="asvhmao",url="/forum/viewtopic.php?p=4436226#p4436226"]Что-то совсем запутался. У меня граф будет генератор таблица и две кнопочки?[/uquote]
Дались вам эти графы...
Вы изобразили блок схему аппаратного прототипа. Она вам тоже не нужна.
Вам для начала лучше разделить программирование энкодера и программирование генератора. Тем более, что это две совершенно разных и, что важно, совершенно независимых задачи.
Поэтому выберите одну из них и реализуйте. Потом реализуете вторую. Тоже отдельно. Тогда внезапно выясните, что их простое объединение даст конечный результат. Только избегайте блокирующего кода. То есть такого кода, который занимает много времени на свое исполнение. Любой код должен вызываться из пустого цикла, исполняться и возвращать управление в пустой цикл. Пустой цикл - это основной внешний цикл работы МК из которого вызываются все функции.
На ассемблере PIC-ов это выглядит так:
Код: Выделить всё
Superloop:
call Func1
call Func2
call Func3
..
call FuncN
goto Superloop
Func1:
......
return
Func2:
......
return
Func3:
......
return
...................
...................
...................
FuncN:
......
return
На фоне работы этого кода могут генерироваться и вызываться прерывания, обработчики которых являются отдельным кодом.
Re: Вопросы начинающих PIC ASM
Добавлено: Вс июн 25, 2023 06:32:26
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]Я так и знал, но кто-то тут мне стал про графы втирать((
Re: Вопросы начинающих PIC ASM
Добавлено: Вс июн 25, 2023 07:03:13
КРАМ
[uquote="yor",url="/forum/viewtopic.php?p=4436414#p4436414"]кто-то тут мне стал про графы втирать(([/uquote]
Не грубите. Про графы Валентинович упомянул всего один раз. Он имел ввиду не граф, а блок-схему. Это сразу и выяснилось. Ваше возмущение не имеет смысла.
[uquote="yor",url="/forum/viewtopic.php?p=4436414#p4436414"]но вот прогнать алгоритм пошагово по блок-схеме - было бы неплохо, чтоб не усугублять кодировочными затыками[/uquote]
Это фуфло. Совершенно лишнее. Подавляющее большинство алгоритмов не имеет сложных блок схем.
Проверять в симуляторе 10 кубиков просто смешно. Они могут работать в симуляторе и не работать в реальности, а так же наоборот. Симулировать время достаточно сложно (не в смысле рисования кубика с обозначением, а алгоритмически). Алгоритмы с обратными связями очень чувствительны к задержкам. Например рекурсивные фильтры.
Re: Вопросы начинающих PIC ASM
Добавлено: Вс июн 25, 2023 09:07:06
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]Могут. Но смысл - только проверить логику, временны́е отношения можно учитывать при кодировании. И если что не так, оптимизировать логику.
Re: Вопросы начинающих PIC ASM
Добавлено: Вс июн 25, 2023 09:33:54
КРАМ
[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]
Это наивная чушь. Впрочем, каждый волен делать глупости по своему разумению.
Учебный софт позволяющий симулировать блок схему - всего лишь учебный софт. Он практически бесполезен в реальности.
Re: Вопросы начинающих PIC ASM
Добавлено: Пн июн 26, 2023 01:38:09
valentinovich
КРАМ писал(а):yor писал(а):
но вот прогнать алгоритм пошагово по блок-схеме - было бы неплохо, чтоб не усугублять кодировочными затыками
Это фуфло. Совершенно лишнее. Подавляющее большинство алгоритмов не имеет сложных блок схем.
Не знам кому как, но здесь я согласен с
КРАМ, но -
и коль сильно хоцца и вы "не ищите лёгких путей",

то вот на вскидку (правда может вы это и видали, коль даже до Дракон-редактора дошли и ознакомились со что такое графические языки программирования):
Спойлер
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. Про что либо под линукс я не в курсе, мне он в своё время как-то не пришёлся с гемором поиска и установки программ под него.
Re: Вопросы начинающих PIC ASM
Добавлено: Пн июн 26, 2023 15:56:26
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
Re: Вопросы начинающих PIC ASM
Добавлено: Пн июн 26, 2023 19:30:22
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