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

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

Сб июн 24, 2023 15:20:00

в виде графа
Дайте хоть одним глазком посмотреть на любой законченный простейший алгоритм в виде графа. Или это блок-схема, геометрические фигуры со стрелочками да-нет?

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

Сб июн 24, 2023 15:29:14

Граф состоит из узлов-состояний и ветвей-переходов.
Это не блок-схема.
Графами удобно описывать машину состояний (стейт-машин) конечного автомата.

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

Сб июн 24, 2023 16:18:58

в виде графа
Дайте хоть одним глазком посмотреть на любой законченный простейший алгоритм в виде графа. Или это блок-схема, геометрические фигуры со стрелочками да-нет?

К примеру вот такое:
https://img.radiokot.ru/files/20529/35onhyk9ic.GIF
:roll:

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

Сб июн 24, 2023 16:33:27

К примеру вот такое:

Это не граф, а блок схема алгоритма.
Граф выглядит так:
Изображение

https://ru.wikipedia.org/wiki/Конечный_автомат

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

Сб июн 24, 2023 17:06:15

Блок-схема тоже состоит из узлов-состояний и ветвей-переходов. Я не спорю, что она является графом, но всё-таки.
А что видно из этого графа, это какая-то общая абстрактная картинка? Вразумительный (пусть простейший) алгоритм в виде графа можно увидеть? Где там конкретные условия и данные? В инете только эти мигающие кружки, никакой конкретики.
Смысл узлов 2 и 3, просто буфера?

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

Сб июн 24, 2023 17:29:42

Блок-схема тоже состоит из узлов-состояний и ветвей-переходов.

Нет. Блок схема это последовательность операций. Никаких состояний там нет. Блок схема является структурой кода. Граф никак не отображает код - не фантазируйте.
Автомат может любое время находится в узле. Блок схема никаких узлов вообще не имеет.

Добавлено after 4 minutes 24 seconds:
Смысл узлов 2 и 3

Я привел ссылку на статью в википедии. Добавлю: https://ru.wikipedia.org/wiki/Теория_графов

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

Сб июн 24, 2023 19:30:28

Это долго и тяжело вникать. Займусь на досуге. Это может помочь в написании именно кода, в выработке алгоритма? Кто-то графами пользуется в программировании?

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

Сб июн 24, 2023 20:35:18

BOB51 писал(а):Для того, чтобы чего-то обсуждать на уровне ассемблерных программ надо не "теорию с потолка" иметь в обсуждении, а конкретную схему устройства и описание того, что данное устройство должно выполнять.
Ибо возможных решений огромное множество.

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

Изображение

uldemir писал(а):Вообще, представляя ваши затеи, скажу что уж больно тоскливый вы кристалл выбрали.

Для обучения, наверное, само то. Камней различных много. Куча примеров, вроде таких как на 8 битах решать задачки с бОльшими значениями. Пока ещё путаюсь в этом ногодрыге, поэтому ассемблер как-то ближе к кубиками рубикам, единичкам ноликам. А там может пока наиграюсь с ними, появятся новые игрушки с интуитивно понятным интерфейсом, где и коды писать не надо будет. :))
Ваши примеры из раздела плисок запоминаю, здорово выручают. :beer: А подсмотренные решения на разных платформах, помогают по другому смотреть на ранее поставленные задачи, как для новичка.

valentinovich писал(а):Причём алгоритм желателен не описанием типа словесного ля-ля и даже не в каком либо языке, а сначала, к примеру, в виде графа. И когда решение вашей задачи будет соответствовать нужной логике процесса в данном виде, вот тогда уже можно будет давать какие-то рекомендации

КРАМ писал(а):Блок схема это последовательность операций. Никаких состояний там нет. Блок схема является структурой кода. Граф никак не отображает код

Что-то совсем запутался. У меня граф будет генератор таблица и две кнопочки? :))

Изображение

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

Сб июн 24, 2023 22:19:07

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

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

Сб июн 24, 2023 22:44:07

yor
Блок-схема ... состоит из узлов-состояний и ветвей-переходов.
Вот, Имхо уже сами начали двигаться в правильном направлении. :)
Из учебного пособия про что есть что:
Блок-схема — это графическое представление алгоритма, рабочего процесса или процесса с различными типами блоков, представляющих различные типы шагов и стрелками, соединяющими каждые два шага или безусловно, или по определённому условию.
Это представление облегчает иллюстрацию решений известных проблем. Блок-схемы широко используются для анализа, проектирования, документирования и управления процессами или процедурами во многих областях.
Достоинства: интуитивно понятный, простой для понимания, легко находит ошибки в алгоритме, может быть напрямую переведен в программу.
Вот некий простой вид:
Изображение

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

Сб июн 24, 2023 22:45:50

Кто-то графами пользуется в программировании?

Забудьте. Вам графы абсолютно не нужны. Блок схема вам нужна, а не граф.

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

Сб июн 24, 2023 22:58:53

Главное человек сам начал находить что-то, что ему показалось правильным и есть таковым!
И это есть хорошо. Только yor, больше уверенности в ваших рассуждениях, которые должны со временем перерасти в возможность самостоятельно управлять самообучением.
:beer:

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

Сб июн 24, 2023 23:39:59

Что-то совсем запутался. У меня граф будет генератор таблица и две кнопочки?

Дались вам эти графы... :facepalm:
Вы изобразили блок схему аппаратного прототипа. Она вам тоже не нужна.
Вам для начала лучше разделить программирование энкодера и программирование генератора. Тем более, что это две совершенно разных и, что важно, совершенно независимых задачи.
Поэтому выберите одну из них и реализуйте. Потом реализуете вторую. Тоже отдельно. Тогда внезапно выясните, что их простое объединение даст конечный результат. Только избегайте блокирующего кода. То есть такого кода, который занимает много времени на свое исполнение. Любой код должен вызываться из пустого цикла, исполняться и возвращать управление в пустой цикл. Пустой цикл - это основной внешний цикл работы МК из которого вызываются все функции.
На ассемблере 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

уже сами начали двигаться в правильном направлении. :)
Я давно уже в этом направлении, но linux в некоторых областях осложняет жизнь. Но я не сдаюсь))

Из учебного пособия про что есть что:
Это я помню со школы, уже 30 лет как))

может быть напрямую переведен в программу.
Напрямую не напрямую, я согласен даже вручную закодить, но вот прогнать алгоритм пошагово по блок-схеме - было бы неплохо, чтоб не усугублять кодировочными затыками. Я искал, но под линукс глухо: https://unixforum.org/viewtopic.php?t=146260 А под винду есть такое?

Забудьте. Вам графы абсолютно не нужны. Блок схема вам нужна, а не граф.
Я так и знал, но кто-то тут мне стал про графы втирать((

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

Вс июн 25, 2023 07:03:13

кто-то тут мне стал про графы втирать((

Не грубите. Про графы Валентинович упомянул всего один раз. Он имел ввиду не граф, а блок-схему. Это сразу и выяснилось. Ваше возмущение не имеет смысла.
но вот прогнать алгоритм пошагово по блок-схеме - было бы неплохо, чтоб не усугублять кодировочными затыками

Это фуфло. Совершенно лишнее. Подавляющее большинство алгоритмов не имеет сложных блок схем.
Проверять в симуляторе 10 кубиков просто смешно. Они могут работать в симуляторе и не работать в реальности, а так же наоборот. Симулировать время достаточно сложно (не в смысле рисования кубика с обозначением, а алгоритмически). Алгоритмы с обратными связями очень чувствительны к задержкам. Например рекурсивные фильтры.

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

Вс июн 25, 2023 09:07:06

но вот прогнать алгоритм пошагово по блок-схеме - было бы неплохо, чтоб не усугублять кодировочными затыками

Это фуфло. Совершенно лишнее. Подавляющее большинство алгоритмов не имеет сложных блок схем.
Проверять в симуляторе 10 кубиков просто смешно.
Вот уже 27 кубиков, не считая начала и конца. И это далеко не самый сложный алгоритм. Может быть и под пятьдесят и под сотню. И перекрестий погуще и запутаннее. Я, конечно, не профи, и мне было бы удобнее, но это мои проблемы. Если кто гигант мысли, то конечно, можно крутить в уме тысячу перекрестий. Я не гигант, но стремлюсь))
https://konspekta.net/lektsiiorgimg/baz ... age002.gif

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

Они могут работать в симуляторе и не работать в реальности, а так же наоборот. Симулировать время достаточно сложно (не в смысле рисования кубика с обозначением, а алгоритмически). Алгоритмы с обратными связями очень чувствительны к задержкам. Например рекурсивные фильтры.
Могут. Но смысл - только проверить логику, временны́е отношения можно учитывать при кодировании. И если что не так, оптимизировать логику.

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

Вс июн 25, 2023 09:33:54

Вот уже 27 кубиков, не считая начала и конца.

Практика показывает, что сложная блок схема, как правило, является результатом бездарного алгоритма и не понимания физического смысла процессов. Есть масса способов свести сию паутину к простой таблице или матрице таблиц. Микроконтроллеры не любят кучи if-ов. Проверка условий (ветвление) - самое ресурсоемкое мероприятие.
Плюс к этому, такого рода каракатица плохо читаема, а значит и плохо поддерживаема.

Добавлено after 4 minutes 10 seconds:
смысл - только проверить логику, временны́е отношения можно учитывать при кодировании.

Это наивная чушь. Впрочем, каждый волен делать глупости по своему разумению.
Учебный софт позволяющий симулировать блок схему - всего лишь учебный софт. Он практически бесполезен в реальности.

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

Пн июн 26, 2023 01:38:09

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

Это фуфло. Совершенно лишнее. Подавляющее большинство алгоритмов не имеет сложных блок схем.
Не знам кому как, но здесь я согласен с КРАМ, но -
yor
Я искал, но под линукс глухо: https://unixforum.org/viewtopic.php?t=146260 А под винду есть такое?
и коль сильно хоцца и вы "не ищите лёгких путей", :) то вот на вскидку (правда может вы это и видали, коль даже до Дракон-редактора дошли и ознакомились со что такое графические языки программирования):
Спойлерhttps://yandex.ru/clck/jsredir?bu=es6q&from=yandex.ru%3Bsearch%2F%3Bweb%3B%3B&text=&etext=2202.fKts2ttjlO3VQRfLDXkePaO_j3lfOfD1OCnLw_BFh4wQ5upaP4eNV6Wn3BPXqvGyqI_qmuOY11TJykQGUgj7Om93eHJtbnprYWNxcWZtd2I.6e496fb844001d403b12005542fb0bbcb02dca78&uuid=&state=7g44L9xLzIu-5Yzy8is5dn0yGb3C8o3UC1T1HzNe3s4Ee_G8bmRu3A,,&&cst=AxbTlK7nwx4MdSOJ1ERoFrWZk0DCa7zLKzzgv_Dvt_l1swlEFQ2sYnUtrF1Nn3j2UPnDm9cb2kGmqyhDZZUOkLoPm3PjFsRBkTbPta6pOrdFhwHYoq8_LXJf0ECqXzJkcS76a5h25pro5zuwGoq6ON3YafbJrTxHZs02IGDs0tMutIEZkKzN3s9qU1oNDK-PMIahZDbq48DOrLfkIx963sVrmZHV5OtZcd5A9xy9hLLGAuxo0QIQBxPB22Z5dAAspcZTR_xCpxkoS73y1sFxZF4ObKK6L17rIKE7BmSSV8R3mzk73K2OQ5Vd4lFUM3xFK1Auv3Jck14-xLAQU7Sk2c0KAf-sK2A3xTZ1ckrz6mLzKJTYebQQCugHM28Mnt1u7xn5Do3ry0t7cfGDdkk9ilb5ChrAhdeCDN9mK94OlfDZIM04cq3c16X2Eb4jcEQrdVoL1X69qkTSPQELNfdqMkGVW4H3qyRRQcOhiGsRpPWz-vPMX6PzyNVsV5hQW1tbxFIkAo33u1n7H8DhEuApGYXkPI5SxlBKsOpybHH_BHg,&data=VzFITjJTUER3MkI4MEY5djBaZUVGMGdiVmJZdnBoTWM5eWxvMnlzZWhLcWhoU2dCXzdXa0pVaUhpLXhidnYtQldhWnlzczVmaDhhODc0OHZSbEFaM2VFaGpKam9oU0tZMGlEV2FwNEd6Y2l0SmJiaWxtMnd2azdwMWsxMUtEbkhkNWFMRHpiNzRIcnZBWHdLVkNGX3l3LCw,&sign=64b02c098e9a9dcb7e0a63c884a8ea53&keyno=WEB_0&b64e=2&ref=mag21uLwzH-iqa6a9U6fw6sBTXI61vrc_xxI2P-7sC4,&l10n=ru&cts=1687729064093&hdtime=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

Просматриваю разные тексты, иногда попадается команда 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

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
Ответить