Заранее извиняюсь за возможно для многих непонятный вопрос...
Осваиваю HiAsm.Что-то потихоньку получается.Многое непонятно,но обдумав почему трудно понимание понял что основной тормоз - выработанные привычки и мировоззрение.
Потихоньку программировать начинал с калькулятора МК-54.(Мы на нём ТОЭ считали).Где-то потом кусками попадались другие языки.Но общее для них было то,что они работали по принципу "цифрового автомата".Тоесть команды шли и выполнялись друг за другом.В каком-то месте были обращения к подпрограммам.Где-то были прерывания.(Я работал только над автоматизацией оборудования).HiAsm-же это несколько иной,я-б сказал "обьёмный" стиль программирования.Конечно есть элементы типа IndexToChanel где можно тупо перебирать события - но это явное ограничение.Возможно кто тоже сталкивался с подобным вопросом.Как можно писать программу на HiAsm в стиле старых программ,тоесть последовательного исполнения программы,переход в нужном месте в подпрограммы,прерывания и т.д.Понятно,что самый первый ответ - "меняй подход".Но мне-б хотелось совместить "прошлое и настоящее".Может путано,но попытался описать вопрос.
С уважением...
Этот топик читают: Гость
Ответов: 24
Рейтинг: 0
|
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
andr_larr писал(а): Конечно есть элементы типа IndexToChanel где можно тупо перебирать события Есть компонент IC в котором можно и прерываниями играться (если винда позволит). andr_larr писал(а): Как можно писать программу на HiAsm в стиле старых программ,тоесть последовательного исполнения программы,переход в нужном месте в подпрограммы,прерывания и т.дТерпение и труд все перетрут. Успехов! |
|||
карма: 25 |
|
Ответов: 3889
Рейтинг: 362
|
|||
andr_larr, достаточно понять принцип работы элементов. Элемент - это и есть набор подпрограмм. Если не брать в расчёт многопоточность, всё чётко линейно и последовательно. Точки слева и снизу элемента вызывают в нём подпрограммы, точки сверху и справа, соответственно, вызывают подпрограммы в других элементах. Когда подпрограмма отработала, управление возвращается обратно вызвавшему элементу (если связь была вертикальной, это был как правило запрос данных, которые возвращаются сверху-вниз), тот возвращает управление своему вызывавшему и так в обратном порядке. Если Вы действительно знакомы с программированием и знаете, что такое вызов процедур с сохранением адреса возврата в стеке, то должны понять принцип.
|
|||
карма: 1 |
|
Ответов: 24
Рейтинг: 0
|
|||
Возможно я неправильно выразился.Элемен IndexToChanel я привёл для примера.Я имел ввиду не сам элемент а стиль для написания программы.Именно стиль последовательного исполнения с переходами на прерывания и подпрограммы.Ну как к примеру на Си пишется и работает - строка за строкой с вызовами функций и прерываний...
Hiasm предполагает большую долю творчества(это большой плюс) при написании программ,но мне хотелось-бы в данное время большей "шаблонности"(другого слова не подобрал). Если есть примеры в этом стиле просьба показать(без разницы что они делают). С уважением... ------------ Дoбавленo в 19.10: 1nd1g0 писал(а): С программированием я знаком на уровне CodeVisionAVR (контроллеры временами программирую).И возможно плохо разбираюсь в более широких областях... С уважением... |
|||
карма: 1 |
|
Ответов: 704
Рейтинг: 44
|
|||
andr_larr писал(а): но мне хотелось-бы в данное время большей "шаблонностиЧто именно вы хотели бы увидеть ввиде шаблонности? какой пример? примеров ввиде как вы выразились шаблонности два ведра с горкой в раздели "СХЕМЫ", там вы можете увидеть очень много всего. ------------ Дoбавленo в 19.22: andr_larr писал(а): Как мне воспользоваться одним элементом Math а не создавать каждый раз по новому элементу для каждого вызова ?------------ Дoбавленo в 19.26: А лучше всего написать вам что вы хотите сделать вам быстрее помогут, чем вы будите мучать себя и заставлять других заниматься экстрасенсорными способностями |
|||
карма: 0 |
|
Ответов: 1173
Рейтинг: 49
|
|||
andr_larr писал(а): идёт подряд несколько циклов for(...)между которыми мне необходимо обратится к подпрограмме математикиcode_28402.txt |
|||
карма: 0 |
| ||
файлы: 1 | code_28402.txt [679B] [59] |
Ответов: 24
Рейтинг: 0
|
|||
Kazbek17 писал(а): Здесь вопрос даже не в конкретике.Вопрос что привыкнув к определённому шаблону пытаюсь перестроится под новые понятия.Спасибо за помощь.. Ex_ писал(а): Интересно.И познавательно.Так действительно понятней.Я возможно нахальничаю - можно-ли привести пример с прерывание.Чтоб после обработки прерывания можно было-б возвращяться в основную программу.К примеру чтоб при превышении какого-либо параметра в программе у меня начинал-бы моргать светдиод сообщяя об аварии при этом не мешая работать основной программе.Тоесть по прерыванию опрашивается величина параметра,выставляла значение светодиода и происходил возврат к основной программе... С уважением.... |
|||
карма: 1 |
|
Ответов: 1173
Рейтинг: 49
|
|||
карма: 0 |
| ||
файлы: 1 | code_28403.txt [442B] [55] |
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 1 раз(а), последний 2017-03-06 09:35:31 |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
andr_larr писал(а): Предположим у меня идёт подряд несколько циклов for(...)между которыми мне необходимо обратится к подпрограмме математики... pdp1.png |
|||
карма: 25 |
| ||
файлы: 1 | pdp1.png [4.1KB] [344] |
Ответов: 3889
Рейтинг: 362
|
|||
andr_larr, Вам дали вариант с потоками, так же можно использовать обыкновенный Timer, который как раз похож на регулярное маскируемое прервание с указанным периодом времени. Изучайте примеры и справку.
|
|||
карма: 1 |
|
Ответов: 258
Рейтинг: -27
|
|||
Tad писал(а): [flood]вот видишь, человек(ТС) тоже не умеет юзать ваши замудренные "Цитаты" , почему никто не хочет добавить кнопку цитата , которая сразу будет вставлять все сообщение(или если выбран текст - то текст), а не только ник[/flood] |
|||
карма: 0 |
|
Ответов: 24
Рейтинг: 0
|
|||
Ex_ писал(а): г. ость писал(а): Tad писал(а): 1nd1g0 писал(а): С уважением... |
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
andr_larr писал(а): К сожалению выдаётся сообщение Element CounterEx not found in current paletteнажми в сообщении у 1nd1g0, 1nd1g0 писал(а): Неофициальная сборка HiASM c нормальным обновлением by CriDos------------ Дoбавленo в 22.33: andr_larr писал(а): а нельзя-ли пример с прерыванием...Не Int 10 или Int 21? |
|||
карма: 25 |
|
Ответов: 1173
Рейтинг: 49
|
|||
andr_larr писал(а): аналог глобальной переменнойandr_larr писал(а): Element CounterEx not found in current palette |
|||
карма: 0 |
|