Вверх ↑
Этот топик читают: Гость
Ответов: 24
Рейтинг: 0
#1: 2012-07-04 18:15:49 ЛС | профиль | цитата
Заранее извиняюсь за возможно для многих непонятный вопрос...
Осваиваю HiAsm.Что-то потихоньку получается.Многое непонятно,но обдумав почему трудно понимание понял что основной тормоз - выработанные привычки и мировоззрение.
Потихоньку программировать начинал с калькулятора МК-54.(Мы на нём ТОЭ считали).Где-то потом кусками попадались другие языки.Но общее для них было то,что они работали по принципу "цифрового автомата".Тоесть команды шли и выполнялись друг за другом.В каком-то месте были обращения к подпрограммам.Где-то были прерывания.(Я работал только над автоматизацией оборудования).HiAsm-же это несколько иной,я-б сказал "обьёмный" стиль программирования.Конечно есть элементы типа IndexToChanel где можно тупо перебирать события - но это явное ограничение.Возможно кто тоже сталкивался с подобным вопросом.Как можно писать программу на HiAsm в стиле старых программ,тоесть последовательного исполнения программы,переход в нужном месте в подпрограммы,прерывания и т.д.Понятно,что самый первый ответ - "меняй подход".Но мне-б хотелось совместить "прошлое и настоящее".Может путано,но попытался описать вопрос.

С уважением...
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#2: 2012-07-04 18:29:19 ЛС | профиль | цитата
andr_larr писал(а):
Конечно есть элементы типа IndexToChanel где можно тупо перебирать события
Тупо -это как ? Ещё есть Hub, с которого можно снимать события в нужном порядке.
Есть компонент IC в котором можно и прерываниями играться (если винда позволит).
andr_larr писал(а):
Как можно писать программу на HiAsm в стиле старых программ,тоесть последовательного исполнения программы,переход в нужном месте в подпрограммы,прерывания и т.д
Это всё в HiAsm не проблемма. Почаще заглядывать хотя-бы в примеры, идущие в комплекте с HiAsm.
Терпение и труд все перетрут.
Успехов!
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 3889
Рейтинг: 362
#3: 2012-07-04 18:35:11 ЛС | профиль | цитата
andr_larr, достаточно понять принцип работы элементов. Элемент - это и есть набор подпрограмм. Если не брать в расчёт многопоточность, всё чётко линейно и последовательно. Точки слева и снизу элемента вызывают в нём подпрограммы, точки сверху и справа, соответственно, вызывают подпрограммы в других элементах. Когда подпрограмма отработала, управление возвращается обратно вызвавшему элементу (если связь была вертикальной, это был как правило запрос данных, которые возвращаются сверху-вниз), тот возвращает управление своему вызывавшему и так в обратном порядке. Если Вы действительно знакомы с программированием и знаете, что такое вызов процедур с сохранением адреса возврата в стеке, то должны понять принцип.  
карма: 1

0
Ответов: 24
Рейтинг: 0
#4: 2012-07-04 19:10:37 ЛС | профиль | цитата
Возможно я неправильно выразился.Элемен IndexToChanel я привёл для примера.Я имел ввиду не сам элемент а стиль для написания программы.Именно стиль последовательного исполнения с переходами на прерывания и подпрограммы.Ну как к примеру на Си пишется и работает - строка за строкой с вызовами функций и прерываний...
Hiasm предполагает большую долю творчества(это большой плюс) при написании программ,но мне хотелось-бы в данное время большей "шаблонности"(другого слова не подобрал).
Если есть примеры в этом стиле просьба показать(без разницы что они делают).

С уважением...
------------ Дoбавленo в 19.10:
1nd1g0 писал(а):
Если можно - пояснить ньюансы.Предположим у меня идёт подряд несколько циклов for(...)между которыми мне необходимо обратится к подпрограмме математики...Как мне воспользоваться одним элементом Math а не создавать каждый раз по новому элементу для каждого вызова ?
С программированием я знаком на уровне CodeVisionAVR (контроллеры временами программирую).И возможно плохо разбираюсь в более широких областях...

С уважением...
карма: 1

0
Ответов: 704
Рейтинг: 44
#5: 2012-07-04 19:26:22 ЛС | профиль | цитата
andr_larr писал(а):
но мне хотелось-бы в данное время большей "шаблонности

Что именно вы хотели бы увидеть ввиде шаблонности? какой пример? примеров ввиде как вы выразились шаблонности два ведра с горкой в раздели "СХЕМЫ", там вы можете увидеть очень много всего.
------------ Дoбавленo в 19.22:
andr_larr писал(а):
Как мне воспользоваться одним элементом Math а не создавать каждый раз по новому элементу для каждого вызова ?
Вам поможет MathParse
------------ Дoбавленo в 19.26:
А лучше всего написать вам что вы хотите сделать вам быстрее помогут, чем вы будите мучать себя и заставлять других заниматься экстрасенсорными способностями
карма: 0

0
Ответов: 1173
Рейтинг: 49
#6: 2012-07-04 19:33:19 ЛС | профиль | цитата
andr_larr писал(а):
идёт подряд несколько циклов for(...)между которыми мне необходимо обратится к подпрограмме математики

code_28402.txt

карма: 0

0
файлы: 1code_28402.txt [679B] [59]
Ответов: 24
Рейтинг: 0
#7: 2012-07-04 20:11:25 ЛС | профиль | цитата
Kazbek17 писал(а):
"А лучше всего написать вам что вы хотите сделать вам быстрее помогут"(с).
Здесь вопрос даже не в конкретике.Вопрос что привыкнув к определённому шаблону пытаюсь перестроится под новые понятия.Спасибо за помощь..
Ex_ писал(а):

Интересно.И познавательно.Так действительно понятней.Я возможно нахальничаю - можно-ли привести пример с прерывание.Чтоб после обработки прерывания можно было-б возвращяться в основную программу.К примеру чтоб при превышении какого-либо параметра в программе у меня начинал-бы моргать светдиод сообщяя об аварии при этом не мешая работать основной программе.Тоесть по прерыванию опрашивается величина параметра,выставляла значение светодиода и происходил возврат к основной программе...

С уважением....
карма: 1

0
Ответов: 1173
Рейтинг: 49
#8: 2012-07-04 20:19:01 ЛС | профиль | цитата
code_28403.txt
Так, что-ли?
карма: 0

0
файлы: 1code_28403.txt [442B] [55]
Гость
Ответов: 17029
Рейтинг: 0
#9: 2012-07-04 20:20:58 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-06 09:35:31
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#10: 2012-07-04 20:31:49 ЛС | профиль | цитата
andr_larr писал(а):
Предположим у меня идёт подряд несколько циклов for(...)между которыми мне необходимо обратится к подпрограмме математики...
Ex_, ты уверен, что под словом "подряд" подразумевается то, что ты изобразил, а не
pdp1.png

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1pdp1.png [4.1KB] [344]
Ответов: 3889
Рейтинг: 362
#11: 2012-07-04 20:31:52 ЛС | профиль | цитата
andr_larr, Вам дали вариант с потоками, так же можно использовать обыкновенный Timer, который как раз похож на регулярное маскируемое прервание с указанным периодом времени. Изучайте примеры и справку.
карма: 1

0
Ответов: 258
Рейтинг: -27
#12: 2012-07-04 20:50:50 ЛС | профиль | цитата
Tad писал(а):


[flood]вот видишь, человек(ТС) тоже не умеет юзать ваши замудренные "Цитаты" , почему никто не хочет добавить кнопку цитата , которая сразу будет вставлять все сообщение(или если выбран текст - то текст), а не только ник[/flood]
карма: 0

0
Ответов: 24
Рейтинг: 0
#13: 2012-07-04 21:12:05 ЛС | профиль | цитата
Ex_ писал(а):
К сожалению выдаётся сообщение Element CounterEx not found in current palette.Где мне посмотреть этот элемент ?(HiAsm 4.04 b.184).
г. ость писал(а):
Спасибо,посмотрю.Хорошо что есть хоть небольшое описание на схеме.Существенно лучше для понимания.
Tad писал(а):
Да,Вы абсолютно правы.Сейчас присмотрелся и увидел что Ваша схема более подходит под мой вопрос.Я ещё раз извиняюсь - а нельзя-ли пример с прерыванием...
1nd1g0 писал(а):
Да,по таймеру действительно можно организовать прерывание,но будет-ли он работать отдельно от остальной схемы ? Надо попробовать.Кстати тут ещё возник вопрос - как передать результат прерываний в основную программу.В видео MQL-Studio for HiAsm [mql-studio] используется элемен Xvar.Я так понимаю аналог глобальной переменной.В 4.04 в 184. я такой не нашёл.Её заменил элемент "память" ?

С уважением...
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#14: 2012-07-04 22:33:20 ЛС | профиль | цитата
andr_larr писал(а):
К сожалению выдаётся сообщение Element CounterEx not found in current palette

нажми в сообщении у 1nd1g0,
1nd1g0 писал(а):
Неофициальная сборка HiASM c нормальным обновлением by CriDos
и установи последнюю версию HiAsm-а
------------ Дoбавленo в 22.33:
andr_larr писал(а):
а нельзя-ли пример с прерыванием...
Что подразумевается под словом "прерывание" ?
Не Int 10 или Int 21?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1173
Рейтинг: 49
#15: 2012-07-04 22:34:23 ЛС | профиль | цитата
andr_larr писал(а):
аналог глобальной переменной
Дык в HA есть компонент глобальной переменной GlobalVar из вкладки Инструменты.
andr_larr писал(а):
Element CounterEx not found in current palette
Замените Counter'ом или сделайте, как сказал Tad.
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)