Программы на алгоритм билдер. Программа на языке Ассемблер в программной среде Algorithm Builder. Затем работоспособность проектируемого устройства было протестировано в программной среде proteus. Порядок работы с программатором

Графическая среда программирования для разработки приложений под микроконтроллеры с архитектурой AVR.

Algorithm Builder представляет собой мощный инструмент, позволяющий провести полный цикл по созданию и проверке программного кода. Среда включает в себя: графический редактор, симулятор микрочипа для отладки алгоритма, компилятор и внутрисхемный программатор для загрузки кода в кристалл. Программа представляет собой отечественный аналог Ассемблера и подходит как для опытных разработчиков, так и для тех, кто только начинает осваивать прошивку устройств.

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

Все разрабатываемые программы представляются в виде ветвящихся древовидных блок-схем, сети переходов отображены графически в векторной форме. Если согласно условию необходимо перейти в какое-либо место программного кода, то достаточно провести туда вектор. Таким образом, ПО освобождается от многочисленных имен меток. В случае, когда ветвление слишком длинное, всегда есть возможность адресовать переход на имя метки. Наглядность подобной логической структуры по заверениям разработчиков значительно сокращает время написания кода и уменьшает количество ошибок.

Основное окно позволяет размещать необходимые объекты и изменять их, вставлять, перемещать и т.п., как в любом графическом редакторе. В отдельной части экрана в виде таблицы формируется окно с перечнем всех констант и переменных, освобождая, таким образом, алгоритм от дополнительных записей. Для настройки параметров периферийных устройств (UART, SPI, ADC, таймеры) предусмотрен особый элемент с раскрывающимся оконным интерфейсом. Набор инструкций, обеспечивающих выбранные параметры работы устройства, самостоятельно формирует компилятор. Кроме этого поддерживается автоперекодировка ANSI-кодов Windows в коды русскоязычного буквенно-цифрового ЖКИ. Программа поддерживает широкий спектр микроконтроллеров семейств: ATtiny, ATmega, AT90.

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

Режим мониторной отладки на ядре с помощью еще одного адаптера (все схемы имеются в документации к софту) позволяет отслеживать внутреннее состояние реального кристалла в любой точке останова. Для связи контроллера с компьютером по выбору пользователя выделяется всего один вывод. Отладка On Chip debug применяется к любому типу микросхем, имеющему SRAM-память.

Несмотря на свои явные достоинства, Algorithm Builder малоизвестен в радиолюбительской среде. Отчасти это объясняется тем, что до 2010 года среда визуального программирования была платной, бесплатная демоверсия ограничивала код до двух килобайт. Сегодня ПО распространяется абсолютно свободно. Папка с установленной программой может копироваться на другие носители и работать портативно. К софту прилагается руководство по использованию. В статье рассматривается ряд простейших работ и приведены схемы программаторов для USB- и COM- портов.

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

Интерфейс программы Algorithm Builder и руководство пользователя представлены на русском и английском языках.

Программное обеспечение работоспособно в операционных системах Microsoft Windows 95, 98, 2000, NT, ME, XP, Vista и 7.

Распространение программы: бесплатная

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

Для начала немного теории

После компилирования (перевода на машинный язык), получается файл с расширением.hex. Этот файл называют прошивкой. Далее этот самый файл загружается в память микроконтроллера, при помощи программатора. Процесс загрузки прошивки в память микроконтроллера называют прошивкой (прожигом). Важно не путать эти два понятия!

  • Прошивка (сущ.) - скомпилированная программа
  • Прошивка (глагол) - процесс записи скомпилированной программы в память МК

Как я уже говорил, для загрузки прошивки в микроконтроллер необходим программатор. Самый простой вариант - это программатор на LPT порт.

Принципиальная схема программатора:

Вообще, резисторы можно и не ставить, но тогда риск спалить lpt порт становится еще выше.

О том, как правильно подключить программатор к микроконтроллеру и прошить в него программу я расскажу в конце статьи. А пока что сосредоточимся на создании программы.

Кратко пробежимся по элементам, из которых строится алгоритм

  1. Текст . Представляет из себя текстовую строку, в которую записываются некоторые команды для algorithm builder.
  2. Вершина блока . Алгоритм в Algorithm Builder делится на блоки. Для создания такого блока и служит этот элемент.
  3. Поле . Представляет из себя отцентрированную в блоке строку. Предназначен для записи большинства команд микроконтроллеру. (создается при нажатии клавиши ENTER).
  4. Метка . Просто вертикальная черта. Не несет в себе никакой информации микроконтроллеру,
  5. Условный переход . Просто говоря - условие. Если то, что записано в прямоугольнике правда, идем по стрелке вправо, если ложь - вниз.
  6. Безусловный переход . Просто стрелка, для перехода между элементами алгоритма.
  7. Настройщик управляющих регистров . Элемент, позволяющий удобно настраивать периферию микроконтроллера

Переходим к практике

  • Открываем Algorithm Builder
  • Создаем новый проект (Файл-Новый. Перед созданием нового проекта нужно закрыть старый!)
  • Клик правой кнопкой мыши по рабочей области - опции проекта. В выпадающем списке выбираем контроллер(Atmega88). В поле тактовая частота вводим 1000000 (Это 1 МГц). И жмем применить.

​Теперь все готово для написания программы!

Начнем с классики - мигание светодиодом

Последовательность действии очень проста:

  • Включить светодиод
  • Подождать немного
  • Выключить светодиод
  • Еще немного подождать

​Начнем по-порядку - как включить светодиод? (т.е установить логическую 1 на ножке)

Ответ: Все действия с периферией микроконтроллера (В т.ч с портами ввода/вывода) осуществляются через регистры.

Регистр - набор из 8 бит. Бит - элементарная единица информации, может быть 1 либо 0

1 0 0 1 1 1 0 1

Это - пример регистра. Самый левый бит называется старшим, и имеет номер 7, самый правый - младшим, имеет номер 0. Не 1, а 0, это важно! Каждый бит регистра за что-либо отвечает. Например, за запуск таймера. Так что регистр можно сравнить с набором тумблеров.

Запись значения в бит регистра осуществляется следующим образом:

Большинство ножек микроконтроллера Atmega88 разделены на 3 порта ввода/вывода. Ножка может настраиваться как на выход, так и на вход. Мы будем работать с портом с индексом C

Каждый регистр имеет свое название

Нас интересуют два регистра - PORTC и DDRC.

  • DDRC отвечает за то, будет ли ножка входом или выходом
  • PORTC управляет состоянием ножки, то есть задает 0 на ножке или 1.

Посмотрим на распиновку микроконтроллера:

Нас интересует 6 ножек с 23 по 28. Это и есть порт C. Светодиод будем подключать к выводу 5 порта C (PC5, 28 ножка)

Итак, нужно:

  • Настроить ножку PC5 на выход
  • Установить единицу на ножке PC5.

За то, будет ли ножка порта C входом или выходом отвечает регистр DDRC. Что бы ножка PC5 была входом, нужно записать в бит №5 лог. "0". Что бы ножка PC5 была выходом, нужно записать в бит №5 лог. "1".

"NOP" удаляем, он нам пока не нужен

Выделяем вершину блока, идем в раздел элементы-прерывания, выбираем из списка Reset

Жмем кнопку "S" (настройщик), выбираем Stack Pointer.

О том, зачем это нужно, я расскажу позднее.

Ставим элемент "label", жмем Enter

Вместо "NOP" пишем следующее:

То есть мы конфигурируем ножку 5 порта C (PC5) на выход

Как я уже говорил, регистр PORTC управляет состоянием ножек порта C, то есть задает 0 на ножке или 1. Записывая в бит 5 этого регистра единицу, на ножке 28(PC5) установится 1, записывая в бит 5 этого регистра ноль, на ножке 28(PC5) установится 0.

Мы сконфигурировали ножку порта на выход и вывели туда 1.

Теперь нужно сделать задержку.

Для создания задержек в папку с проектом нужно поместить специальный файл - waitings.alg(расширение.alg указывает, что это дополнительный алгоритм) и подключить его.

Подключается файл следующим образом. В верхней строке прописывается следующий код: +: Waitings.alg. Всё!

Задержка создается следующим образом:

где число в скобках - величина задержки (в миллисекундах)

Теперь можно написать полную программу:

Жмем кнопку (скомпилировать) - algorithm builder создаст файл прошивки в файлах проекта.

Полная схема устройства


Для прошивки достаточно просто соединить одноименные выводы программатора и микроконтроллера

Графический ассемблер

Программное обеспечение является источником жизни системы, основанной на микроконтроллере или микропроцессоре. Разработка его является центральным моментом общего процесса проектирования. Основным инструментом для профессиональной разработки программ является ассемблер, предполагающий детализацию на уровне команд микроконтроллера или микропроцессора. Только он позволяет максимально использовать ресурсы кристалла. Однако работать на ассемблере не слишком удобно. Существенным барьером между программистом и предметом программирования является текстовый редактор с его ограниченными возможностями.

В данной публикации я хотел поговорить о технологии графической разработки программного обеспечения для микроконтроллеров и микропроцессоров. Такая технология освобождает программиста от целого ряда неудобств, свойственных классическому ассемблеру, а также предполагает существенное упрощение работы при сохранении уровня его детализации. Рассмотрение темы я буду вести с использованием в качестве примера среды разработки "Algor ithm Builder", в частности адаптированной под микроконтроллеры фирмы ATMEL с архитектурой AVR.

Вначале немного о мнемонике. Мнемоника представляет собой короткий набор букв латинского алфавита, однозначно определяющий соответствующую ему операцию в ядре микропроцессора. Конечно, разработчики старались вложить в этот набор букв смысл выполняемой операции, чтобы максимально облегчить жизнь программисту. И в ряде случаев им это вполне удалось, например, MOV, CALL, ADD, JMP и так далее. Но таких ситуаций немного. А появившиеся позже команды SBI, XTHL, BRBC, ADIW, XCHD и другие начинают соперничать с китайской письменностью. Разумеется, можно попытаться их запомнить, но и без того проблем достаточно.

Кроме того, те, кто имел дело с разными микропроцессорами, конечно, обратил внимание, что общность мнемоник их ассемблеров составляет не более трети. Среди присутствующих практически во всех ассемблерах, можно перечислить MOV, ADD, SUB, CALL, AND, OR, INC, DEC, PUSH, POP и еще некоторые. Основная же масса представлений эксклюзивна даже для ряда совершенно одинаковых операций. Например, в одном случае операция "исключающее или" записывается как XOR, в других - EOR. В одном случае обозначение операций переходов построено на основе слова JUMP, в другом - на основе BRАNCH. И таких примеров можно привести множество. Но ведь редко кому удается пользоваться только одним ассемблером. В реальной жизни "коней" приходится менять, и с таким нежелательным разнообразием сталкиваешься неизбежно.

С учетом всего этого, в среде "Algor ithm Builder" представление операций микроконтроллера построено иначе - по визуально-функциональному принципу. Запись операции содержит образ выполняемого действия. Например:

вместо "MOV R0,R1" записывается

вместо "LDI R16,63" - "63->R16",

вместо "ST X,R2" - "R2->[X]",

вместо "LSR r7" - "r7>>",

вместо "SBI PortB,3" - "1->PortB.3" и так далее.

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

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

Главное предназначение графических сред - приведение интерфейса разработки в соответствие с природой человеческого восприятия, освобождение пользователя от лишних рутинных действий для чисто творческого процесса. Элементы этих технологий мы наблюдаем в таких языках программирования, как Visual Basic, C-Builder, Delphi и других. Но там этот процесс ограничивается в основном конструированием содержимого окна. А с полным правом к этой категории можно, пожалуй, отнести такие среды, как PCAD, OrCAD и прочие. Можно, конечно, электрическую схему описать в текстовом редакторе, вводя список соединений, но гораздо удобнее это делать в специализированном графическом редакторе.

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

Например, приведенная ниже подпрограмма содержит три таких блока:


SubName: LDI XL,96

Label0: LD R16,X

Label1: SBI PortA,0

Label2: SBI PortA,2


Первый блок начинается с оператора "LDI XL,$20" с меткой "SubName", а завершается оператором безусловного перехода "RJMP", два других - начинаются с оператора "SBI" с метками "Label1" и "Label2", соответственно, а заканчиваются оператором "RET".

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

На рис. 1 показано отображение вышеприведенной программы в графической среде "Algorithm Builder".

Рис. 1. Отображение программы в среде "Algorithm Builder"

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

Графическая технология ассемблера в среде "Algorithm Builder" реализуется посредством нескольких базовых объектов, из которых выстраивается конструкция алгоритма. Среди них:


  • "Label" (метка) - отображается в виде вертикального штриха, расположенного на оси блока операторов. Метка может иметь необязательное имя, которое располагается слева или справа от штриха. Метки предназначены для подвода концов векторов переходов;

  • "Vertex" (вершина) используется в качестве начала блока, а по своему отображению и назначению аналогичен метке;

  • "Field" (поле) предназначен для записи операторов алгоритма и представляет собой отцентрированную строку в блоке;

  • "Condition" (условие) предназначен для обозначения операторов условных переходов. Конструктивно наиболее сложный. Графически представляет собой контур, располагающийся посредине блока, внутри которого вписывается текст с условием перехода и возможный вектор перехода в виде ломаной линии, исходящей от одного из краев контура, со стрелкой на конце, которая должна заканчиваться на метке или вершине. Действие интерпретируется как ветвление, если вписанное условие выполняется;

  • "JMP Vector" предназначен для представления безусловного перехода. Графически представляет собой ломаную линию, исходящую из середины блока операторов, аналогичную вектору объекта "Condition".
Редактор среды позволяет свободно вносить на рабочее поле любые необходимые объекты, модифицировать их, вставлять и так далее. Принципы редактирования аналогичны используемым в других графических редакторах.
Для удобства, конец вектора ветвления разрешается останавливать на отрезке другого вектора, если конечно адрес у них общий. Но при большом нежелании рисовать вектор ветвления, либо, если это ветвление слишком длинное, всегда остается возможность адресовать переход классическим способом, на имя метки.

Рис. 2. Основное окно редактора

Рис. 3. Окно программиста

В целом данная среда программирования является самодостаточной системой. Она содержит в себе компилятор алгоритма, симулятор микроконтроллера и внутрисхемный программатор, обеспечивающий загрузку откомпилированного алгоритма в кристалл. Кроме того, обеспечивается режим мониторной отладки, при котором к откомпилированному коду программы добавляется скрытый код, обеспечивающий вывод всего внутреннего состояния реального микроконтроллера в заданных точках останова в соответствующие окна, как при работе в симуляторе. При работе мониторного отладчика и программатора микроконтроллер непосредственно подключается к параллельному порту LPT несколькими цепями.

Рис. 4. Окно настройки таймеров

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

Рис. 5. Работа симулятора

Среда "Algor ithm Builder" предна- значена для работы в операционной системе Windows 95/98.

На рис. 6 приведен более сложный пример фрагмента программы. Слева - в классическом ассемблере, а справа - полная его копия в среде "Algor ithm Builder".

Рис. 6. Ассемблер: классика и графика

Конечно, в рамках одной статьи невозможно достаточно подробно описать все особенности работы в графической среде.

В ближайшее время среда "Algor ithm Builder" будет адаптирована под иные типы микропроцессорных архитектур.

Переход к использованию такой среды труден психологически. В голове многих проскользнет мысль: "может, ассемблер и не располагает этими возможностями, но я к нему очень привык, мне и с ним хорошо". Это чем-то сродни переходу от командной (DOS) к графической оболочке (Windows). Однако, освоение этого инструмента и последующая работа с ним заметно проще классического ассемблера. Во всяком случае, те, кто его уже используют, пути назад не ищат.

Algorithm Builder fo AVR, Начинаем

Качаем и устанавливаем Algorithm Builder fo AVR http://algrom.net/russian.html
Внимательно читаем Manual.pdf

Отличительные особенности:

  • Поддерживаемые операционные системы: Windows 95/98/2000/NT/ME/XP
  • Лицензия: Freeware
  • Язык интерфейса: английский, русский
  • Языки программирования: графический ассемблер
  • Основные функции:
    • графический редактор код программы
    • компилятор
    • симулятор для отладки введенного алгоритма
    • программирование через COM-порт с использованием простейшего адаптера (7 резисторов, 3 диода; схема приведена в документации)
    • отладка алгоритма на кристалле с использованием еще более простого адаптера (1 или 2 диода, 2 или 4 резистора; схема приведена в документации)
  • Адрес поддержки в Интернет: http://algrom.net/russian.html

Описание:

Algorithm Builder - бесплатная среда (условия распространения Freeware) для МК AVR, которая обеспечивает полный цикл разработки микропрограммного обеспечения, в т.ч. такие этапы как ввод алгоритма, отладка и внутрисхемное программирование. Разработку программы можно вести как на уровне ассемблера, так и на макро-уровне, при котором возможна работа со знакопеременными величинами произвольной длины. Это приближает возможности программирования к языку высокого уровня.

Отличительной чертой Algorithm Builder является возможность ввода программы графическим способом, в виде алгоритм с древовидной структурой. В результате вся логическая структура программы становится полностью наглядной. Такой способ программирования максимально близок к природе человеческого восприятия и, поэтому, он намного проще в освоении, если сравнивать с классическим ассемблером. Ожидаемое время сокращения времени создания микропрограммного обеспечения по сравнению с классическим ассемблером составляет 3-5 раз.

Среда предназначена для работы под ОС Windows 95/98/2000/NT/ME/XP. Для нормальной работы редактора требуется наличие шрифта "Courier".

Файлы для скачивания:

  • Серия AT90
    • AT90CAN128, AT90PWM3, AT90S1200, AT90S2313, AT90S2323, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, AT90USB64, AT90USB82, AT90USB128, AT90USB162
  • Серия ATmega
    • ATmega8, ATmega16, ATmega32, ATmega48, ATmega64, ATmega88, ATmega103, ATmega128, ATmega161, ATmega162, ATmega163, ATmega164P, ATmega165, ATmega168, ATmega323, ATmega324P, ATmega325, ATmega328P, ATmega603, ATmega640, ATmega644, ATmega644P, ATmega645, ATmega1280, ATmega1281, ATmega1284P, ATmega2560, ATmega2561, ATmega3250, ATmega6450, ATmega8515, ATmega8535
  • ATtiny
    • ATtiny10, ATtiny11, ATtiny12, ATtiny13, ATtiny15, ATtiny22, ATtiny24, ATtiny25, ATtiny26, ATtiny28, ATtiny44, ATtiny45, ATtiny84, ATtiny85, ATtiny261, ATtiny461, ATtiny861, ATtiny2313

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

Для начала давайте разберемся: что вообще такое микроконтроллер (МК)? По сути, это миниатюрный компьютер, предназначенный для выполнения простейших задач. Все необходимое для работы микроконтроллера заключено в одном корпусе. В микроконтроллере имеется различная периферия - порты ввода\вывода, таймеры, интерфейсы связи и т.д. Микроконтроллер имеет три вида памяти, это 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 программатор можно заказать на , DealExtreame или (Поисковой запрос"avr programmer"; стоит примерно 4-6$). О выборе и сборке программатора я напишу в следующем уроке.