Algorithm builder что это за программа

:: УПРАВЛЕНИЕ С КОМПЬЮТЕРА :: ЧАСТЬ 2 ::

Материалы статьи подготовлены на кафедре «Автоматика, Информатика и Системы Управления» (АИиСУ) Московского Государственного Индустриального Университета (ГОУ МГИУ).
(С 2011 года МГИУ носит название — ФГБОУ ВПО «МГИУ»).
Авторы: Крюков А.И., Шубникова И.С., Тройков С.М.

Кафедра АИиСУ уже более 35 лет готовит профессионалов в области разработки и эксплуатации электронных, микропроцессорных, компьютерных, робототехнических, мехатронных и информационных систем управления для автомобильной и аэрокосмической техники, машиностроения и бизнеса. Научно-исследовательская работа сотрудников кафедры ведется в областях, связанных с разработкой систем поддержки принятия решений на основе технологий искусственного интеллекта, анализа и синтеза процессов управления сложными системами, контроля и интеллектуального выявления сбоев аппаратуры. Важным направлением научной деятельности кафедры является проведение исследований в области автоматических и электронных систем транспортных средств.

Существует большое количество всевозможных приложений для написания управляющих программ для МК фирмы Atmel — это среды разработки и отладки на языках низкого уровня (например, бесплатный пакет AVR Studio для разработки программ на языке AVR Assembler), среды разработки на языках высокого уровня (такие как среда WinAVR для разработки программ на С-подобном языке) и есть даже графическая среда разработки и отладки программного обеспечения под названием «Algorithm Builder».

Прошивка МК в Algorithm Builder

Algorithm Builder стоит особняком среди всех других сред и именно на нем мы и остановимся. Изюминка этого приложения даже не в том, что оно бесплатно, а в том, что код в нем даже не пишется, а рисуется в виде блок-схем алгоритмов, что значительно сокращает время на разработку приложения. Данная среда обеспечивает полный цикл разработки, начиная от ввода алгоритма, включая отладку, и заканчивая внутрисхемным программированием кристалла. В результате вся логическая структура программы становится полностью наглядной.

Разработка программного обеспечения в среде Algorithm Builder сводится к формированию таких блоков задач, размещению их на плоскости и установлению между ними связей из условных и безусловных переходов.

Дабы не переписывать весь мануал по работе со средой Algorithm Builder советую прочитать его самостоятельно, тем более, что приложение отечественного производства и содержит подробнейшее описание на русском языке на основе примеров по работе с ним. Основываясь на личном опыте, можно с уверенностью сказать, что данного мануала (кстати, далеко не объемного — всего на 20-30 мин. изучения) вполне хватает, чтобы полностью понять и разобраться в данном программном продукте.

Скачать Algorithm Builder можно по адресу http://algrom.net/russian.html. А процесс разработки управляющей программы можно посмотреть по ссылке . Таким образом, представим далее готовую программу в описанной среде разработки с подробнейшими комментариями к ней.

Светлые головы #1-2. Algorithm Builder 5.44

Для начала необходимо выбрать тип кристалла (в нашем случае Atmega8) в меню Опции/Опции проекта и там же задать тактовую частоту 8000000 Гц (8 МГц). Далее выполняем сброс кристалла при запуске (Элементы/Прерывания/Reset). После чего инициализируем стек, выбрав Элементы/Настройщик…/Stack Pointer (SP), откроется окошко с которым нужно будет просто согласиться, нажав «ОК» (рис. 2).

Рис. 2. Настройщик стека

Следующим этапом следует инициализировать приемопередатчик USART (не стоит удивляться появлению буквы «S» в аббревиатуре – это более современный вариант UART, отличающийся от него возможностью передавать/принимать данные не только в асинхронном режиме, но и в синхронном) путем выбора меню Элементы/Настройщик…/USART. В открывшемся окошке (рис. 3) в разделе Receiver ставим галочки напротив Enable (включаем приемник данных) и Complete interrupt enable (разрешаем прерывания по окончании приема данных), далее ставим галочку напротив Double Speed, задаем размер символа Character Size: 8 – bit и выставляем скорость передачи данных Baud Rate = 9615 bps (когда нажмете на выбор скорости передачи данных в меню следует выбирать 9600 bps, 9615 bps получается в связи с пересчетом тактовой частоты на 8 МГц).

Рис. 3. Настройщик USART

Далее следует разрешить глобальные прерывания записав «1» во флаг глобальных прерываний I.

Листинг №1
Основное тело программы

На листинге №2 приведен код подпрограммы задержки (Delay). Временная задержка необходима для точной и полной отработки команды и формируется путем зацикливания программы на N циклов (методом проб и ошибок мы подсчитали, что в нашем случае наиболее удачное число циклов 84FF в 16-тиричной системе счисления).

Листинг №2
Подпрограмма задержки

Окончание приема данных по UART вызывает прерывание USART_Receive_Complete (если оно в данный момент не запрещено в основном теле программы), которое в коде можно задать через меню Элементы/Прерывания/ USART_Receive_Complete. В теле обработчика следует сохранить все используемые в нем регистры в стек, а в конце обработчика обратно их восстановить из стека. Так же в этом обработчике можно получить байт статуса (регистр UCSRA) для проверки данных на ошибки и, естественно, сами данные из регистра UDR (листинг №3).

Листинг №3
Обработчик прерывания

Угол поворота сервопривода зависит от ширины подаваемого на него импульса при сохранении периода постоянным (период 20 мс, а длительность управляющего импульса от 0,8 до 2,2 мс, хотя для разных сервоприводов эти значения могут немного отличаться) для этого нам и понадобится подпрограмма отработки угла поворота сервопривода (листинг №4). Время управляющего импульса и время паузы будем задавать аналогично подпрограмме задержки. Как мы уже писали выше, экспериментальным путем для частоты кристалла 8 МГц мы определили, что время импульса задается кодом в приделах от $05AF до $154F. Таким образом, зная время всего периода – $9E3C (определили так же экспериментально), можно рассчитать время паузы как разницу между длительностью периода и длительностью импульса. Остается только аналогично подпрограмме задержки отработать последовательно время импульса и время паузы, а затем повторить такой сигнал несколько раз (в нашем случае мы повторили сигнал $10 раз, т.е. 16 раз в десятичной системе счисления)

Читайте также:
Гугл сервис фреймворк что это за программа на Андроид и нужна ли

Листинг №4
Подпрограмма отработки угла поворота

После написания кода (прорисовки алгоритма) управляющей программы необходимо ее откомпилировать и прошить в микроконтроллер. Компиляцию программы можно произвести нажатием Ctrl+F9 либо через меню Программа/Компилировать. В случае успешной компиляции появится информационное окно в котором будет указан объем занятой памяти МК.

Далее необходимо прошить результат компиляции (файл с расширением *.hex без приписки «EE_» вначале, лежащий в той же папке, что и исходник программы) в контроллер. Это можно сделать с помощью бесплатной утилиты AvrProg, входящей в так же бесплатный пакет AVR Studio. Скачать ее можно с сайта mymcu.ru либо с atmel.com (англоязычный сайт).

Помимо утилиты для прошивки МК потребуется еще и программатор. Его можно либо купить (простые версии стоят относительно недорого) либо спаять самостоятельно.

Рис. 4. Схема LPT-программатора

Самый простой из мне известных – LPT-программатор, но он соответственно потребует наличие порта LPT на компьютере, что на данный момент становится редкостью. Идея программатора проста и состоит в соединении порта LPT с интерфейсом ISP и линией Reset контроллера напрямую (рис. 4).

Другой вариант программатора для самостоятельной сборки – USB-программатор (схема показана на рис. 5), он конечно сложнее, но в последствии может оказаться значительно более удобным. Тем не менее есть одно «но» – для его сборки все равно потребуется LPT-программатор, правда однократно.

Он будет необходим для прошивки управляющего контроллера самого программатора с целью прошивки FUSE-битов. Необходимо, чтобы были запрограммированны (установленны в «0») биты SPIEN, CKOPT и SUT0. Обычно МК, идущие с завода, т.е. новые, имеют уже запрограммированный бит SPIEN. Так же желательно (но не обязательно) запрограммировать (установить в «0») бит BODEN.

Остальные биты должны быть незапрограммированны (установленны в «1»). Для этого может потребоваться приложение Codevision AVR V2.03.4. Подробное описание сборки USB-программатора можно прочитать тут: http://modder-team.clan.su/publ/5-1-0-36 .

Рис. 5. Схема USB-программатора

Подключив программатор с МК к компьютеру (не важно какой программатор) нужно запустить AvrProg (адрес приблизительно такой для AVR Studio: C:Program FilesAtmelAVR ToolsAvrProg ) и если с программатором и МК все в порядке откроется окошко в котором нужно указать путь к Вашему hex-файлу и нажать кнопку «Program».

Источник: myrobot.ru

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

Если две предыдущие программы я рекомендовал как оптимальный вариант для начала работы с электроникой вообще и микроконтроллерами в частности, то эта программа лишь мое личное предпочтение и честно говоря, для повторения конструкций с этого ресурса она Вам не понадобится. Но не упомянуть приятную во всех отношениях программу я не могу.

Данная статья лишь ознакомительный обзор программы, на которой будет написано большинство проектов этого блога и не в коей мере не должна рассматриваться как реклама или рекомендация к использованию этой среды программирования.

Автор программы Геннадий Громов.
Сайт программы www.algrom.net

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

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

Правильнее было бы назвать программу – визуальный ассемблер или построитель ассемблера. А раз это ассемблер то Вы получите на выходе максимально эффективный код.

Окно переменных

Работа с переменными и константами организована гениально просто. Инициализация производиться в отдельном окне в виде таблицы – освобождая алгоритм от лишних записей. В буквальном смысле слова все разложено по полочкам. Удобно иметь в любой момент под рукой перечень всех переменных и констант.

Настройщик периферии. Algorithm Builder имеет удобный настройщик периферии (таймеры, UART, ADC, SPI и т.д.) позволяющий, не читая даташитов, просто выбрать необходимые параметры работы устройства в окне настройки. В этом же окне Билдер честно покажет набор инструкций, обеспечивающих эти параметры.

Главное окно

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

Читайте также:
Background eraser что это за программа

Внутрисхемное программирование кристалла. При использовании внутрисхемного программатора микроконтроллер подключается к COM порту компьютера через несложный адаптер (три диода и несколько резисторов).Также есть вариант USB подключения. Программатор ведет подсчет числа перепрограммирований кристалла, сохраняя счетчик непосредственно в кристалле. Процесс программирования кристалла очень прост — в два «тыка».

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

Мониторная отладка может быть применена к любому типу кристалла, имеющего SRAM. Это софтверный вариант debugWIRE. Я без этой штуки просто не представляю себе отладку программ.

Так почему такая хорошая программа так малоизвестна?
Первая причина — программа до 2010 года была платной. Бесплатная демоверсия имела полную функциональность, но ограничивала код откомпилированной программы до 2 килобайт. В 2010 году автор программы сделал новогодний подарок – версия 5.43 вышла свободной от ограничений.
Вторая причина — отсутствие поддержки программы. Вы не найдете ни одного апнота производителя в котором бы использовался Билдер. Интернет ресурсы, посвященные данной программе, можно пересчитать по пальцам.
Жаль, конечно – программа действительно интересна.

Выводы:
Ассемблерщики при переходе на Algorithm Builder будут писать кипятком, так как они будут иметь все тот же ассемблер, но управляться им станет на порядок легче и наглядней. Одно плохо – придется распрощаться с наработанными библиотеками и писать новые.
Сишникам однозначно Билдер не понравится, так как придется опускаться до уровня ассемблера, а какому сишнику понравится возюкаться с регистрами.
Наверное, наилучшая целевая аудитория — начинающие осваивать микроконтроллеры. Программа проста и поэтому будет легко осваивать программирование.
В общем, конечно, выводы получились неоднозначные. Думайте сами…

Программа имеет мануал, написанный в форме обучающей статьи. В мануале рассмотрено создание простого проекта – вольтметра, даны схемы программаторов COM и USB. Скачать версию без ограничений можно здесь

Кому интересно посмотреть мануал, а устанавливать программу лениво – вот выкладываю его отдельно

Программа активно развивается, поэтому смотрите свежие версии на сайте программы www.algrom.net. Кроме того, там же есть небольшая подборка библиотек.

P.S. Программа портативная. Тесть после установки папку с программой скидываем на флешку и работаем с нее.

Источник: www.getchip.net

Algorithm Builder. Урок 1 — Введение

Думаю, в наше время нет радиолюбителя, который никогда не сталкивался с микроконтроллерами. Рано или поздно, но это происходит. Когда я в первый раз увидел схему с микроконтроллером, тут же закрыл страницу браузера, с мыслью: «А, все равно не соберу». Но время шло, схем с применением микроконтроллеров становилось все больше, и я все-таки решил начать. На деле все оказалось совсем не таким сложным, как я думал. Для начала давайте разберемся: что вообще такое микроконтроллер (МК)? По сути, это миниатюрный компьютер, предназначенный для выполнения простейших задач. Все необходимое для работы микроконтроллера заключено в одном корпусе. В микроконтроллере имеется различная периферия — порты вводавывода, таймеры, интерфейсы связи и т.д. Микроконтроллер имеет три вида памяти, это RAM (оперативная память), FlashROM (Память программы), EEPROM (энергонезависимая память). Главное отличие микроконтроллера от обычной микросхемы — это то, что микроконтроллер работает не по жесткой логике, установленной на заводе, а программируется. Программа, классически пишется в специальной среде на компьютере на одном из языков программирования, после чего переводится на машинный язык(компилируется) и записывается в память контроллера. В этом курсе все будет немного по-другому — программа будет не писаться, а буквально рисоваться в виде блок-схемы. Благодаря такому подходу программа выглядит более наглядно, а время на разработку программы сокращается в 3-5 раз, по сравнению с классическими приемами программирования. Algorithm Builder — среда программирования Algorithm Builder производит полный цикл разработки, начиная от ввода алгоритма, включая процесс отладки и заканчивая записью программы в память. Начнем с краткого обзора интерфейса программы Главное меню

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

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

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

Читайте также:
Catalyst control center что это за программа и нужна

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

Тут есть особенность. Нельзя открыть два проекта одновременно.Чтобы открыть/создать новый проект нужно закрыть старый. После открытия проекта вы можете открыть/создать лишь отдельный файл-алгоритм. Файл проекта имеет расширение .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. Это значит, что если вы знаете один микроконтроллер из серии — вы знаете и всю серию!

Отличаются они лишь объемом памяти. Если вы разрабатываете программу и понимаете, что программа не влезает в память — вы всегда сможете перейти на более «взрослый» микроконтроллер из серии, не меняя при этом самой программы.

Теги:

dossalab Опубликована: 21.07.2014 0 0

Вознаградить Я собрал 0 0

Оценить статью

  • Техническая грамотность

Источник: cxem.net

Algorithm Builder. Графическая среда для разработки ПО для МК AVR

С любезного разрешения разработчика Algorithm Builder — Геннадия Громова.

. в продолжении тематики графических сред программирования под МК 1 2 сегодня познакомим вас еще с одним продуктом под микроконтроллеры AVR архитектуры — Algorithm Builder. Данная среда предназначена для полного цикла разработки от алгоритма, отладки и до программирования кристалла. Разработка может быть как на уровне ассемблера, так и на макроуровне с манипуляцией многобайтными величинами со знаком. В отличие от классического ассемблера программа вводится в виде алгоритма с древовидными ветвлениями и отображается на плоскости, в двух измерениях. Сеть условных и безусловных переходов отображается графически, в удобной векторной форме.

о возможностях

Для настройки периферийных устройств (таймеры, UART, ADC, SPI и т.д.) предусмотрен специальный элемент алгоритма — «настройщик» с раскрывающимся оконным интерфейсом. В нем достаточно выбрать необходимые параметры работы устройства, а набор инструкций, обеспечивающих эти параметры, сформирует компилятор (в правой части окна).

  • Поддерживается автоматическая перекодировка строк ANSI-кодов в коды русифицированного буквенно-цифрового ЖКИ.
  • Графический редактор, компилятор алгоритма, симулятор микроконтроллера и внутрисхемный программатор в одном комплекте.
  • При использовании внутрисхемного программатора микроконтроллер подключается к COM порту компьютера через несложный адаптер (три диода и несколько резисторов). Программатор ведет подсчет числа перепрограммирований кристалла, сохраняя счетчик непосредственно в кристалле.
  • Обеспечивается мониторинг отладки на кристалле (On Chip debug). При этом, для связи МК с компьютером используется только один вывод по выбору пользователя. Мониторная отладка может быть применена к любому типу кристалла, имеющего SRAM.

Cтраница проекта: http://algrom.net
Разработчик: Геннадий Громов
Поддерживаемые ОС: Win 95/98/2000/NT/ME/XP

Вложения

AB544.zip (3.06 Мб, 185 просмотров)

Источник: www.cyberforum.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru