Algorithm builder примеры программ

Algorithm builder примеры программ

Думаю, в наше время нет радиолюбителя, который никогда не сталкивался с микроконтроллерами. Рано или поздно, но это происходит. Когда я в первый раз увидел схему с микроконтроллером, тут же закрыл страницу браузера, с мыслью: "А, все равно не соберу". Но время шло, схем с применением микроконтроллеров становилось все больше, и я все-таки решил начать. На деле все оказалось совсем не таким сложным, как я думал.

Для начала давайте разберемся: что вообще такое микроконтроллер (МК)? По сути, это миниатюрный компьютер, предназначенный для выполнения простейших задач. Все необходимое для работы микроконтроллера заключено в одном корпусе. В микроконтроллере имеется различная периферия — порты вводавывода, таймеры, интерфейсы связи и т.д. Микроконтроллер имеет три вида памяти, это RAM (оперативная память), FlashROM (Память программы), EEPROM (энергонезависимая память).

Главное отличие микроконтроллера от обычной микросхемы — это то, что микроконтроллер работает не по жесткой логике, установленной на заводе, а программируется. Программа, классически пишется в специальной среде на компьютере на одном из языков программирования, после чего переводится на машинный язык(компилируется) и записывается в память контроллера. В этом курсе все будет немного по-другому — программа будет не писаться, а буквально рисоваться в виде блок-схемы. Благодаря такому подходу программа выглядит более наглядно, а время на разработку программы сокращается в 3-5 раз, по сравнению с классическими приемами программирования.

Algorithm Builder — среда программирования

Algorithm Builder производит полный цикл разработки, начиная от ввода алгоритма, включая процесс отладки и заканчивая записью программы в память.

Начнем с краткого обзора интерфейса программы

Главное меню

  • Файл. Служит для открытия, сохранения, закрытия проектов и отдельных алгоритмов, а так же выхода из программы.
  • Редактировать. Действия, связанные с редактированием алгоритма: вырезать, копировать, выделить и т.д
  • Отображение. Переключение алгоритм/таблица с переменными(о ней ниже) + шаблоны операций и условий.
  • Поиск. Тут пояснять не нужно.
  • Элементы. Алгоритм рисуется из специальных элементов: Текст, Вершина, Поле, Метка, Условие, Вектор б/у (безусловного) перехода, Настройщик. Со всеми ними мы познакомимся в процессе обучения. В меню находится еще несколько важных пунктов: Деактивировать, Макро, Прерывания.Деактивировать — данный компонент не будет компилироваться. Макро — для создания макросов. Прерывания — содержит список названии всех прерываний микроконтроллера. Об этой функции вы узнаете в следующих уроках, сейчас лишь скажу, что это чрезвычайно важная и необходимая для работы вещь.
  • Программа. Действия, связанные с программой — компиляция (перевод на машинный язык), симуляция работы программы, чтение памяти контроллера (Flash и EEPROM) и т.д.
  • Опции. Настройки проекта и среды.
  • ?. Информация о Algoritm Builder и справка.

Панель инструментов

В пояснениях не нуждается. При наведении курсора на элементы панели всплывают подсказки.

Открытый проект

Тут есть особенность. Нельзя открыть два проекта одновременно.Чтобы открыть/создать новый проект нужно закрыть старый. После открытия проекта вы можете открыть/создать лишь отдельный файл-алгоритм. Файл проекта имеет расширение .alp, а отдельный файл-алгоритм имеет расширение .alg

Работа с переменными и константами

Организуется в виде специальной таблицы (переключить можно клавишей F12, либо через меню, либо клавишей на панели инструментов). Таким образом, сам алгоритм освобождается от лишних записей.

Огромное число меток, благодаря которым возможны переходы от одной части программы к другой, сильно загромождают код, и наглядность программы теряется. В Algorithm Builder переходы осуществляются намного проще — стрелкой (вектором). Но переходы по именованным меткам так же возможны.

Симуляция работы программы

Симулятор показывает все изменения, происходящие внутри виртуального микроконтроллера. Что бы проверить работу программы не обязательно даже покупать микроконтроллер! Симуляция может выполняться пошагово (с заходом в функции или нет), до установленной точки останова или до выделенного участка.

Отладка

Algorithm Builder обладает системой мониторной отладки на кристалле (On Chip debug) которая позволяет наблюдать содержимое памяти реального микроконтроллера в заданных точках. При этом для связи микроконтроллера с компьютером используется всего одна ножка микроконтроллера, причем по выбору пользователя. Мониторная отладка может быть применена практически к любому микроконтроллеру. Это программный вариант протокола debugWIRE.

Так почему же Algorithm Builder малоизвестен среди радиолюбителей? Во-первых, до 2010 программа была платной. Сегодня ПО распространяется абсолютно свободно. Во-вторых, отсутствие официальной поддержки программы. Вы не найдете ни одного апнота производителя в котором бы использовался Билдер. Интернет ресурсы, посвященные данной программе, можно пересчитать по пальцам.

Стоит немного рассказать о необходимых материалах и инструментах

Первое что понадобится — это паяльник. Основной инструмент радиолюбителя. Мощность паяльника должна быть в приделах 30-60 Вт. Почему нельзя больше? Мощный паяльник нагревается сильней, и повреждает дорожки платы и применяемые детали. Да и паять им не так удобно — такой паяльник намного больше и тяжелее. Подробнее о паяльниках и пайке

Для того, чтобы загрузить программу в микроконтроллер нужен программатор — в простейшем варианте состоит всего из нескольких резисторов и диодов (на порт LPT и COM). Если у Вас на компьютере нет порта COM либо LPT, USB программатор можно заказать на eBay, DealExtreame или Aliexpress (Поисковой запрос"avr programmer"; стоит примерно 4-6$). О выборе и сборке программатора я напишу в следующем уроке.

Читайте также:  Почему диспетчер задач не показывает процессы

Для связи микроконтроллера с компьютером (например, чтобы передать от микроконтроллера к компьютеру данные с датчика температуры) необходим специальный переходник. Он не имеет прямого отношения к этому курсу, однако для некоторых устройств он может быть полезен. Называется он USB-UART (для USB) или COM-UART (для COM порта). Подробней я расскажу об этом в следующих уроках.

Ну и самое главное — микроконтроллер. В этом учебном курсе мы будем использовать микроконтроллер ATmega 88. Почему именно он? Это один микроконтроллер из серии ATmega 48, ATmega 88, ATmega 168, ATmega 328. Это значит, что если вы знаете один микроконтроллер из серии — вы знаете и всю серию! Отличаются они лишь объемом памяти. Если вы разрабатываете программу и понимаете, что программа не влезает в память — вы всегда сможете перейти на более "взрослый" микроконтроллер из серии, не меняя при этом самой программы.

Думаю, в наше время нет радиолюбителя, который никогда не сталкивался с микроконтроллерами. Рано или поздно, но это происходит. Когда я в первый раз увидел схему с микроконтроллером, тут же закрыл страницу браузера, с мыслью: "А, все равно не соберу". Но время шло, схем с применением микроконтроллеров становилось все больше, и я все-таки решил начать. На деле все оказалось совсем не таким сложным, как я думал.

Для начала давайте разберемся: что вообще такое микроконтроллер (МК)? По сути, это миниатюрный компьютер, предназначенный для выполнения простейших задач. Все необходимое для работы микроконтроллера заключено в одном корпусе. В микроконтроллере имеется различная периферия — порты вводавывода, таймеры, интерфейсы связи и т.д. Микроконтроллер имеет три вида памяти, это RAM (оперативная память), FlashROM (Память программы), EEPROM (энергонезависимая память).

Главное отличие микроконтроллера от обычной микросхемы — это то, что микроконтроллер работает не по жесткой логике, установленной на заводе, а программируется. Программа, классически пишется в специальной среде на компьютере на одном из языков программирования, после чего переводится на машинный язык(компилируется) и записывается в память контроллера. В этом курсе все будет немного по-другому — программа будет не писаться, а буквально рисоваться в виде блок-схемы. Благодаря такому подходу программа выглядит более наглядно, а время на разработку программы сокращается в 3-5 раз, по сравнению с классическими приемами программирования.

Algorithm Builder — среда программирования

Algorithm Builder производит полный цикл разработки, начиная от ввода алгоритма, включая процесс отладки и заканчивая записью программы в память.

Начнем с краткого обзора интерфейса программы

Главное меню

  • Файл. Служит для открытия, сохранения, закрытия проектов и отдельных алгоритмов, а так же выхода из программы.
  • Редактировать. Действия, связанные с редактированием алгоритма: вырезать, копировать, выделить и т.д
  • Отображение. Переключение алгоритм/таблица с переменными(о ней ниже) + шаблоны операций и условий.
  • Поиск. Тут пояснять не нужно.
  • Элементы. Алгоритм рисуется из специальных элементов: Текст, Вершина, Поле, Метка, Условие, Вектор б/у (безусловного) перехода, Настройщик. Со всеми ними мы познакомимся в процессе обучения. В меню находится еще несколько важных пунктов: Деактивировать, Макро, Прерывания.Деактивировать — данный компонент не будет компилироваться. Макро — для создания макросов. Прерывания — содержит список названии всех прерываний микроконтроллера. Об этой функции вы узнаете в следующих уроках, сейчас лишь скажу, что это чрезвычайно важная и необходимая для работы вещь.
  • Программа. Действия, связанные с программой — компиляция (перевод на машинный язык), симуляция работы программы, чтение памяти контроллера (Flash и EEPROM) и т.д.
  • Опции. Настройки проекта и среды.
  • ?. Информация о Algoritm Builder и справка.

Панель инструментов

В пояснениях не нуждается. При наведении курсора на элементы панели всплывают подсказки.

Открытый проект

Тут есть особенность. Нельзя открыть два проекта одновременно.Чтобы открыть/создать новый проект нужно закрыть старый. После открытия проекта вы можете открыть/создать лишь отдельный файл-алгоритм. Файл проекта имеет расширение .alp, а отдельный файл-алгоритм имеет расширение .alg

Работа с переменными и константами

Организуется в виде специальной таблицы (переключить можно клавишей F12, либо через меню, либо клавишей на панели инструментов). Таким образом, сам алгоритм освобождается от лишних записей.

Огромное число меток, благодаря которым возможны переходы от одной части программы к другой, сильно загромождают код, и наглядность программы теряется. В Algorithm Builder переходы осуществляются намного проще — стрелкой (вектором). Но переходы по именованным меткам так же возможны.

Симуляция работы программы

Симулятор показывает все изменения, происходящие внутри виртуального микроконтроллера. Что бы проверить работу программы не обязательно даже покупать микроконтроллер! Симуляция может выполняться пошагово (с заходом в функции или нет), до установленной точки останова или до выделенного участка.

Отладка

Algorithm Builder обладает системой мониторной отладки на кристалле (On Chip debug) которая позволяет наблюдать содержимое памяти реального микроконтроллера в заданных точках. При этом для связи микроконтроллера с компьютером используется всего одна ножка микроконтроллера, причем по выбору пользователя. Мониторная отладка может быть применена практически к любому микроконтроллеру. Это программный вариант протокола debugWIRE.

Так почему же Algorithm Builder малоизвестен среди радиолюбителей? Во-первых, до 2010 программа была платной. Сегодня ПО распространяется абсолютно свободно. Во-вторых, отсутствие официальной поддержки программы. Вы не найдете ни одного апнота производителя в котором бы использовался Билдер. Интернет ресурсы, посвященные данной программе, можно пересчитать по пальцам.

Читайте также:  Как поставить русские кавычки

Стоит немного рассказать о необходимых материалах и инструментах

Первое что понадобится — это паяльник. Основной инструмент радиолюбителя. Мощность паяльника должна быть в приделах 30-60 Вт. Почему нельзя больше? Мощный паяльник нагревается сильней, и повреждает дорожки платы и применяемые детали. Да и паять им не так удобно — такой паяльник намного больше и тяжелее. Подробнее о паяльниках и пайке

Для того, чтобы загрузить программу в микроконтроллер нужен программатор — в простейшем варианте состоит всего из нескольких резисторов и диодов (на порт LPT и COM). Если у Вас на компьютере нет порта COM либо LPT, USB программатор можно заказать на eBay, DealExtreame или Aliexpress (Поисковой запрос"avr programmer"; стоит примерно 4-6$). О выборе и сборке программатора я напишу в следующем уроке.

Для связи микроконтроллера с компьютером (например, чтобы передать от микроконтроллера к компьютеру данные с датчика температуры) необходим специальный переходник. Он не имеет прямого отношения к этому курсу, однако для некоторых устройств он может быть полезен. Называется он USB-UART (для USB) или COM-UART (для COM порта). Подробней я расскажу об этом в следующих уроках.

Ну и самое главное — микроконтроллер. В этом учебном курсе мы будем использовать микроконтроллер ATmega 88. Почему именно он? Это один микроконтроллер из серии ATmega 48, ATmega 88, ATmega 168, ATmega 328. Это значит, что если вы знаете один микроконтроллер из серии — вы знаете и всю серию! Отличаются они лишь объемом памяти. Если вы разрабатываете программу и понимаете, что программа не влезает в память — вы всегда сможете перейти на более "взрослый" микроконтроллер из серии, не меняя при этом самой программы.

Наглядность

Сильно отличается от классического ассемблера. Очень сильно.

Бесплатность

В связи с тем, что программа была платной и в демо версии ограничивала объемом кода в 2К, то количество примеров ограничено (хотя никто не мешает взять программу написанную на ассемблере и перевести её в АБ).

Достаточность

Программа самодостаточная, нельзя добавить модуль стороннего разработчика, или импортировать кусок кода из АБ в другую программу например в AVR STUDIO.
Программу написанную АБ может прочитать только АБ.

Простота

Очень непривычно переходить после АБ на классический ассемблер
При использовании макросов встроенных в АБ нужно четко понимать что внутри них происходит, иначе можно прийти к неожиданным результатам, и трудно устранимым глюкам.

Отладка

на самом деле SPI, генератор, UART, это все, что можно подключить все остальное придется эмулировать вручную. или с помощью протеуса.

Переносимость

непереносим, не совместим… сам в себе.

Субъективный

С этим трудно спорить, кому то просто не понравиться… тоже бывает 🙂

подытожим АБ неплохой компилятор, стоящий того что бы обратить на себя внимание, но есть ряд причин почему он не рекомендуем для серьезных работ. Повторюсь все это моё личное мнение, вы можете и не соглашаться с ним.

Программу АБ можно скачать здесь
довесок
  • AB,
  • AVR,
  • Algorithm builder,
  • ассемблер,
  • ОС
  • +3
  • 12 июля 2013, 20:54
  • BOBBY
  • 1

Комментарии ( 41 )

  • e_mc2
  • 12 июля 2013, 22:21
  • ZiB
  • 13 июля 2013, 07:18
  • cybersonner
  • 13 июля 2013, 07:27

став в последней версии фриварным.

  • xar
  • 13 июля 2013, 09:38
  • xar
  • 13 июля 2013, 09:38
  • EW1UA
  • 13 июля 2013, 21:15
  • xar
  • 13 июля 2013, 22:35
  • BOBBY
  • 13 июля 2013, 22:14
  • cybersonner
  • 14 июля 2013, 18:03
  • Papandopala
  • 13 июля 2013, 11:02
  • uni
  • 13 июля 2013, 11:24
  • angel5a
  • 13 июля 2013, 12:07

Что можно сказать пользователю, который при первой неудаче всё бросает? Обратитесь на форум программы с пояснением того окружения, в котором пробовали, и той ошибкой, которая возникает.

Лично я и куча народа из разных стран уже давно не замечали падений программы. На английской части форума идёт постоянное её обсуждение и развитие. Вчера программа пополнилась дополнением для решения жестких ОДУ (спасибо мне).

Следите за ночными сборками последних версий на английской части форума. Тамошние форумчане более активны, чем наши отечественные.

  • uni
  • 13 июля 2013, 12:12

Существует неофициальная версия без инсталлятора: SMath Portable with Plugins 20130705.

Основные дополнения программы описаны тут: Registered Extensions.

  • uni
  • 13 июля 2013, 12:17

Обратитесь на форум программы

  • angel5a
  • 13 июля 2013, 21:17

Базовые чего чего? 🙂 Эта программа не для вас однозначно, вы с ней не сошлись характерами. Она создавалась как альтернатива Mathcad во время его падения. Вот что пишут про SMath Studio активные пользователи Mathcad. Ваши стоны на этом фоне выглядят уныло. Заметьте, что в первом посте Ричард прямо указал на то, что SMath Studio развивается быстрее Prime и это удивительно, учитывая различия в ресурсах. Человек с первым местом в Mathcad сообществе и мне общаться было куда интереснее, т.к. он в теме «базовых принципов управления».

Читайте также:  Шумит вентиляция в квартире

  • uni
  • 13 июля 2013, 21:44
  • angel5a
  • 13 июля 2013, 12:05
  • DIHALT
  • 13 июля 2013, 12:36

Разработка компанией тоже не означает длительный срок поддержки

  • Papandopala
  • 13 июля 2013, 16:26

На самом деле AVR Studio померла на 4-й версии, а то, что есть сейчас, это дополнения к Visual Studio 2010. Atmel бросила разработку своего интерфейса и взяла уже готовое, оставив только движки для симуляции микроконтроллеров. Я уж не говорю про компиляторы C/C++, которых у неё и не было. Что в итоге? Интерфейс от MS, гнутые компиляторы и собственные Ассемблер и движки для симуляции и поддержки отладки. А если посмотреть на IAR, к примеру? Всё своё.

Очень не многие могут позволить делать свой собственный продукт целиком. Сейчас вообще трудно такой найти, если посмотреть в структуру дистриба многих современных программ, то там видно, что они собирались с мира по нитке. Mathcad тоже тянула одна компания, да не вытянула, продали его PTC, а он всё переделал почти с нуля. Для многих программ .Net стал рубежом — либо ты всё переписываешь под управляемый код, либо устареешь. Мне думается, что и AVR Studio попала под этот рубеж. Когда стало понятно, что нужно всё переписывать под .Net, то они просто взяли готовое, чтобы идти в ногу со временем.

  • uni
  • 13 июля 2013, 18:41

Когда стало понятно, что нужно всё переписывать под .Net.

  • EW1UA
  • 13 июля 2013, 20:03

Потому что это удобно. Когда корпорация пишет стандарт и окружает его очень хорошим инструментарием, то в этот момент всё то, что было до этого устаревает. DOS долго держалась, но Win32API его победила окончательно и безповоротно. Win32API долго держался и ещё продержится не мало, но только для системных применений.

Разница становится понятной, когда от тебя требуют скорости в написании кода. Не каждый плагин сможет современный стандарт C++ распарсить для подсказок при написании кода, а стандарт вышел, его нужно поддерживать, а раз нужно поддерживать, то нужно среду разработки писать, а на чём её писать? На чём написаны современные среды разработки? Java и .Net.

На хабре была картинка, которая иллюстрировала этот процесс. Там кто-то собрал статистику со stackoverflow и github, а именно, количество вопросов по c#, java, c++ и пр. и количество проектов на разных языках. Насколько я помню, c#, java, c++ были в лидерах, но с разными количественными показателями. Что тут ещё можно сказать?

  • uni
  • 13 июля 2013, 20:16

Когда корпорация пишет стандарт.

  • EW1UA
  • 13 июля 2013, 20:56

.Net — это платформа для написания приложения для ОС. Вот об этом и шла речь. Когда я писал о Win32API, то имел в виду API — интерфейс для написания приложений под Windows. Интерфейсы эти сменяют друг друга, когда-то вы писали на Turbo Vision, теперь у вас в распоряжении .Net Framework. Одно поколение программ отмирает, другое приходит к нему на смену. Как правило, это происходит при смене ОС.

stackoverflow и github не ограничены рамками типов проектов, если кто-то что-то спрашивает или кто-то залил проект на github, то это факт, причём можно численно указать величину этих фактов и это было практически реализовано. Задают вопросы и создают проекты программисты, это две одни из самых популярных площадок для их общения.

Если на stackoverflow нет вопросов по DOS, то это означает, что она сложна? Зачем мудрить и придумывать непонятно что? Количество вопросов говорит о количестве спрашивающих. Надо полагать, что они не от природного любопытства это делают? Может это гуманитарии собрались, зарегистрировались и давай спрашивать направо и налево?

«Стандарт» для отрасли IT означает очень очень много. MS пишет стандарты, а после их ввода, как правило, отпадают старые «поделки». .Net — это куча стандартов: MSIL, C#, CLR и так далее. Когда ввели XML, то отпали все доморощенные форматы данных. Сейчас всё в xml, а почему? Потому что это поддерживается на уровне стандарта и ОС. Когда появилась Java и стала набирать популярность, то MS ввела свой стандарт — C# и .Net — это та же Java, но «microsoft specific». Смысл был в том, чтобы ускорить разработку кода. Java и C# позволяют это сделать, с их помощью упрощается и ускоряется разработка приложений. Их простота, в отличие от C++, позволяет создавать более комфортные среды разработки и т.д.

В общем тенденция вполне логичная.

Я привёл пример статистики, которую можно найти на хабре, пройти к источнику и самому всё рассчитать. Прошу что-нить привести в ответ, пока я ищё тот пост.

Ссылка на основную публикацию
Adblock detector