Вопросы начинающих PIC ASM
Re: Вопросы начинающих PIC ASM
[uquote="valentinovich",url="/forum/viewtopic.php?p=4435846#p4435846"]в виде графа[/uquote]Дайте хоть одним глазком посмотреть на любой законченный простейший алгоритм в виде графа. Или это блок-схема, геометрические фигуры со стрелочками да-нет?
- Реклама
- КРАМ
- Друг Кота
- Сообщения: 25211
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Вопросы начинающих PIC ASM
Граф состоит из узлов-состояний и ветвей-переходов.
Это не блок-схема.
Графами удобно описывать машину состояний (стейт-машин) конечного автомата.
Это не блок-схема.
Графами удобно описывать машину состояний (стейт-машин) конечного автомата.
Re: Вопросы начинающих PIC ASM
[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

К примеру вот такое:
https://img.radiokot.ru/files/20529/35onhyk9ic.GIF
- КРАМ
- Друг Кота
- Сообщения: 25211
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Вопросы начинающих PIC ASM
[uquote="BOB51",url="/forum/viewtopic.php?p=4436087#p4436087"]К примеру вот такое:[/uquote]
Это не граф, а блок схема алгоритма.
Граф выглядит так:

https://ru.wikipedia.org/wiki/Конечный_автомат
Это не граф, а блок схема алгоритма.
Граф выглядит так:
https://ru.wikipedia.org/wiki/Конечный_автомат
Re: Вопросы начинающих PIC ASM
Блок-схема тоже состоит из узлов-состояний и ветвей-переходов. Я не спорю, что она является графом, но всё-таки.
А что видно из этого графа, это какая-то общая абстрактная картинка? Вразумительный (пусть простейший) алгоритм в виде графа можно увидеть? Где там конкретные условия и данные? В инете только эти мигающие кружки, никакой конкретики.
Смысл узлов 2 и 3, просто буфера?
А что видно из этого графа, это какая-то общая абстрактная картинка? Вразумительный (пусть простейший) алгоритм в виде графа можно увидеть? Где там конкретные условия и данные? В инете только эти мигающие кружки, никакой конкретики.
Смысл узлов 2 и 3, просто буфера?
- Реклама
- КРАМ
- Друг Кота
- Сообщения: 25211
- Зарегистрирован: Чт янв 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/Теория_графов
Нет. Блок схема это последовательность операций. Никаких состояний там нет. Блок схема является структурой кода. Граф никак не отображает код - не фантазируйте.
Автомат может любое время находится в узле. Блок схема никаких узлов вообще не имеет.
Добавлено 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
Это долго и тяжело вникать. Займусь на досуге. Это может помочь в написании именно кода, в выработке алгоритма? Кто-то графами пользуется в программировании?
Re: Вопросы начинающих PIC ASM
В том то и дело что пока теория. Поэтому и интересны все эти огромные множества решений.BOB51 писал(а):Для того, чтобы чего-то обсуждать на уровне ассемблерных программ надо не "теорию с потолка" иметь в обсуждении, а конкретную схему устройства и описание того, что данное устройство должно выполнять.
Ибо возможных решений огромное множество.
Схемы тоже виртуальные в протеусе, рисуй какие хочешь. По тех заданию допустим диапазон частот от 0 до 3000 Гц, шаг 50 или 100 Гц. Заполнение окна 50/50 , пока без выкрутасов.
Для обучения, наверное, само то. Камней различных много. Куча примеров, вроде таких как на 8 битах решать задачки с бОльшими значениями. Пока ещё путаюсь в этом ногодрыге, поэтому ассемблер как-то ближе к кубиками рубикам, единичкам ноликам. А там может пока наиграюсь с ними, появятся новые игрушки с интуитивно понятным интерфейсом, где и коды писать не надо будет.uldemir писал(а):Вообще, представляя ваши затеи, скажу что уж больно тоскливый вы кристалл выбрали.
Ваши примеры из раздела плисок запоминаю, здорово выручают.
valentinovich писал(а):Причём алгоритм желателен не описанием типа словесного ля-ля и даже не в каком либо языке, а сначала, к примеру, в виде графа. И когда решение вашей задачи будет соответствовать нужной логике процесса в данном виде, вот тогда уже можно будет давать какие-то рекомендации
Что-то совсем запутался. У меня граф будет генератор таблица и две кнопочки?КРАМ писал(а):Блок схема это последовательность операций. Никаких состояний там нет. Блок схема является структурой кода. Граф никак не отображает код
„Выживает не самый сильный и не самый умный, а тот, кто лучше всех приспосабливается к изменениям.“
— Чарлз Дарвин
— Чарлз Дарвин
Re: Вопросы начинающих PIC ASM
С шагом генератора надо внимательно смотреть...
Не задавать то, что невозможно получить простым делением базовой частоты (то уже DDS - совсем иная бяка).
В остальном -
опорный генератор интервалов (на аппаратном таймере и прерываниях)
сканер кнопок (может на втором таймере или используем один общий - смотреть надо)
счетчики генератора звуковых частот с изменяемым при помощи кнопок коэффициентом - эти можно и программные.
обработчик кнопок (инкремент/декремент содержимого программных постделителей)

Не задавать то, что невозможно получить простым делением базовой частоты (то уже DDS - совсем иная бяка).
В остальном -
опорный генератор интервалов (на аппаратном таймере и прерываниях)
сканер кнопок (может на втором таймере или используем один общий - смотреть надо)
счетчики генератора звуковых частот с изменяемым при помощи кнопок коэффициентом - эти можно и программные.
обработчик кнопок (инкремент/декремент содержимого программных постделителей)
- valentinovich
- Держит паяльник хвостом
- Сообщения: 999
- Зарегистрирован: Ср окт 04, 2017 20:47:40
Re: Вопросы начинающих PIC ASM
Вот, Имхо уже сами начали двигаться в правильном направлении.yor
Блок-схема ... состоит из узлов-состояний и ветвей-переходов.
Из учебного пособия про что есть что:
Блок-схема — это графическое представление алгоритма, рабочего процесса или процесса с различными типами блоков, представляющих различные типы шагов и стрелками, соединяющими каждые два шага или безусловно, или по определённому условию.
Это представление облегчает иллюстрацию решений известных проблем. Блок-схемы широко используются для анализа, проектирования, документирования и управления процессами или процедурами во многих областях.
Достоинства: интуитивно понятный, простой для понимания, легко находит ошибки в алгоритме, может быть напрямую переведен в программу.
Вот некий простой вид:
- КРАМ
- Друг Кота
- Сообщения: 25211
- Зарегистрирован: Чт янв 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
Главное человек сам начал находить что-то, что ему показалось правильным и есть таковым!
И это есть хорошо. Только yor, больше уверенности в ваших рассуждениях, которые должны со временем перерасти в возможность самостоятельно управлять самообучением.

И это есть хорошо. Только yor, больше уверенности в ваших рассуждениях, которые должны со временем перерасти в возможность самостоятельно управлять самообучением.
- КРАМ
- Друг Кота
- Сообщения: 25211
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Вопросы начинающих PIC ASM
[uquote="asvhmao",url="/forum/viewtopic.php?p=4436226#p4436226"]Что-то совсем запутался. У меня граф будет генератор таблица и две кнопочки?[/uquote]
Дались вам эти графы...
Вы изобразили блок схему аппаратного прототипа. Она вам тоже не нужна.
Вам для начала лучше разделить программирование энкодера и программирование генератора. Тем более, что это две совершенно разных и, что важно, совершенно независимых задачи.
Поэтому выберите одну из них и реализуйте. Потом реализуете вторую. Тоже отдельно. Тогда внезапно выясните, что их простое объединение даст конечный результат. Только избегайте блокирующего кода. То есть такого кода, который занимает много времени на свое исполнение. Любой код должен вызываться из пустого цикла, исполняться и возвращать управление в пустой цикл. Пустой цикл - это основной внешний цикл работы МК из которого вызываются все функции.
На ассемблере PIC-ов это выглядит так:
На фоне работы этого кода могут генерироваться и вызываться прерывания, обработчики которых являются отдельным кодом.
Дались вам эти графы...
Вы изобразили блок схему аппаратного прототипа. Она вам тоже не нужна.
Вам для начала лучше разделить программирование энкодера и программирование генератора. Тем более, что это две совершенно разных и, что важно, совершенно независимых задачи.
Поэтому выберите одну из них и реализуйте. Потом реализуете вторую. Тоже отдельно. Тогда внезапно выясните, что их простое объединение даст конечный результат. Только избегайте блокирующего кода. То есть такого кода, который занимает много времени на свое исполнение. Любой код должен вызываться из пустого цикла, исполняться и возвращать управление в пустой цикл. Пустой цикл - это основной внешний цикл работы МК из которого вызываются все функции.
На ассемблере PIC-ов это выглядит так:
Код: Выделить всё
Superloop:
call Func1
call Func2
call Func3
..
call FuncN
goto Superloop
Func1:
......
return
Func2:
......
return
Func3:
......
return
...................
...................
...................
FuncN:
......
return
Re: Вопросы начинающих PIC ASM
[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]Я так и знал, но кто-то тут мне стал про графы втирать((
[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]Я так и знал, но кто-то тут мне стал про графы втирать((
- КРАМ
- Друг Кота
- Сообщения: 25211
- Зарегистрирован: Чт янв 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 кубиков просто смешно. Они могут работать в симуляторе и не работать в реальности, а так же наоборот. Симулировать время достаточно сложно (не в смысле рисования кубика с обозначением, а алгоритмически). Алгоритмы с обратными связями очень чувствительны к задержкам. Например рекурсивные фильтры.
Не грубите. Про графы Валентинович упомянул всего один раз. Он имел ввиду не граф, а блок-схему. Это сразу и выяснилось. Ваше возмущение не имеет смысла.
[uquote="yor",url="/forum/viewtopic.php?p=4436414#p4436414"]но вот прогнать алгоритм пошагово по блок-схеме - было бы неплохо, чтоб не усугублять кодировочными затыками[/uquote]
Это фуфло. Совершенно лишнее. Подавляющее большинство алгоритмов не имеет сложных блок схем.
Проверять в симуляторе 10 кубиков просто смешно. Они могут работать в симуляторе и не работать в реальности, а так же наоборот. Симулировать время достаточно сложно (не в смысле рисования кубика с обозначением, а алгоритмически). Алгоритмы с обратными связями очень чувствительны к задержкам. Например рекурсивные фильтры.
Re: Вопросы начинающих PIC ASM
[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]Могут. Но смысл - только проверить логику, временны́е отношения можно учитывать при кодировании. И если что не так, оптимизировать логику.
Это фуфло. Совершенно лишнее. Подавляющее большинство алгоритмов не имеет сложных блок схем.
Проверять в симуляторе 10 кубиков просто смешно.[/uquote]Вот уже 27 кубиков, не считая начала и конца. И это далеко не самый сложный алгоритм. Может быть и под пятьдесят и под сотню. И перекрестий погуще и запутаннее. Я, конечно, не профи, и мне было бы удобнее, но это мои проблемы. Если кто гигант мысли, то конечно, можно крутить в уме тысячу перекрестий. Я не гигант, но стремлюсь))
https://konspekta.net/lektsiiorgimg/baz ... age002.gif
Не зря ведь сделали Дракон-редактор. Кому-то понадобилось.
[uquote="КРАМ",url="/forum/viewtopic.php?p=4436418#p4436418"]Они могут работать в симуляторе и не работать в реальности, а так же наоборот. Симулировать время достаточно сложно (не в смысле рисования кубика с обозначением, а алгоритмически). Алгоритмы с обратными связями очень чувствительны к задержкам. Например рекурсивные фильтры.[/uquote]Могут. Но смысл - только проверить логику, временны́е отношения можно учитывать при кодировании. И если что не так, оптимизировать логику.
- КРАМ
- Друг Кота
- Сообщения: 25211
- Зарегистрирован: Чт янв 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]
Это наивная чушь. Впрочем, каждый волен делать глупости по своему разумению.
Учебный софт позволяющий симулировать блок схему - всего лишь учебный софт. Он практически бесполезен в реальности.
Практика показывает, что сложная блок схема, как правило, является результатом бездарного алгоритма и не понимания физического смысла процессов. Есть масса способов свести сию паутину к простой таблице или матрице таблиц. Микроконтроллеры не любят кучи 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
Не знам кому как, но здесь я согласен с КРАМ, но -КРАМ писал(а):yor писал(а):
но вот прогнать алгоритм пошагово по блок-схеме - было бы неплохо, чтоб не усугублять кодировочными затыками
Это фуфло. Совершенно лишнее. Подавляющее большинство алгоритмов не имеет сложных блок схем.
и коль сильно хоцца и вы "не ищите лёгких путей",yor
Я искал, но под линукс глухо: https://unixforum.org/viewtopic.php?t=146260 А под винду есть такое?
Re: Вопросы начинающих PIC ASM
Просматриваю разные тексты, иногда попадается команда 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
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


