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

Автор: | 29.01.2010

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


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

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

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

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

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

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

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

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

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

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

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

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

Algorithm_Builder 5.44 - Среда визуального программирования


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

Мануал (10312)


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

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

(Visited 6 574 times, 6 visits today)

Среда программирования Algorithm Builder: 81 комментарий

  1. FreshMan

    интерестно, а часы на этой проге можна сваять ?

  2. GetChiper Автор записи

    На этой проге можно сваять все что угодно.

  3. ave

    Было одно удовольствие читать комменты GetChiper и Brigadir !!! Оба правы, но GetChiper правее. 🙂 Я в свое время подобный путь проходил еще со времен ZX-SPECTRUM. От BASIC и Asembler Z80, потом перешел на PIC (Asembler), потом на AVR (уже Asembler и СИ). Еще купил программатор и научился работать с такой экзотикой, как Cypress (среда разработки PSoC) — через две недели самообучения перевел один свой проект с AVR на CY7C63813-SXC (просто этот контроллер с аппаратным USB всего 1$ в Китае стоит). К чему я все это? Да, все зависит от целесообразности. Посмотрел я на http://www.flowcode.info — не понравилось, там больше проектов под PIC и слабая поддержка. «Algorithm Builder» — идеальный для школьной программы! Еще бы сайт для этой темы развить — с личными кабинетами для участников, где ученики могли б свои наработки выставлять, а другие могли бы их оценивать в балах. Тогда сайт развивался бы самими участниками.

  4. Kirilka

    Всем доброго времени суток.
    Я только начинаю заниматься с микроконтроллерами. Пишу элементарные программы с среде Algorithm Builder.
    Много раз видел, как на Ваших устройствах меняется яркость светодиодов. Захотелось разобраться, но из исходников я ничего не понял
    Подскажите, пожалуйста, как это реализуется?
    Желательно подробнее.
    Заранее спасибо

  5. GetChiper Автор записи

    Реализуется это при помощи широтно-импульсной модуляции (ШИМ). Меняя скважность сигнала, мы ,соответственно, меняем уровень яркости светодиода. Каждый таймер МК имеет по два (чаще всего) ШИМ-модуля. С помощью билдера очень просто их настроить(конечно нужно почитать перед этим литературу). Если нужно много ШИМ-каналов, то делается софтовый ШИМ. Заготовка для этого уже есть http://www.forum.getchip.net/viewtopic.php?f=18&t=164 Просто подставляйте свои порта.

  6. Kirilka

    Спасибо. Мне не совсем понятно как менять скважность. Объясните, пожалуйста.

  7. GetChiper Автор записи

    Если Вы про алгоритм софтовых ШИМ, то переменная BriN (где N — номер канала 1, 2, 3,…) и задает скважность соответствующего канала.

  8. Kirilka

    Т.е. нужно просто присвоить определенное число этой переменной?

  9. GetChiper Автор записи

    Да. В любом месте программы записываете значение в переменную и «яркость» соответствующего канала станет пропорциональной записанному значению.

  10. Kirilka

    максимальная яркость будет при значении 0? или нет?

  11. GetChiper Автор записи

    Не помню — попробуйте.

  12. GetChiper Автор записи

    Пример программы написан для ATtiny2313 c внутренним задающим генератором на 8МГц (поэтому ничего менять не нужно). Соответственно в проекте есть и нужные фьюзы (прошьются автоматически если поставить галку в окне прошивки).

  13. Kirilka

    Огромное спасибо за помощь!

  14. Kirilka

    Здравствуйте. Скажите, пожалуйста, как организовать внешнее прерывание при низком уровне int0?

  15. GetChiper Автор записи

    Нажимаем «S»-настройщик, нажимаем «External interrupts» выпадет настройщик периферии — там все и настраивается. Вот картинка

  16. crezi-alex

    Всем привет! Большой респект Евгению за проделаную работу созданию утроиств и обслуживания сайта, что есть возможность поковырять исходники. Хочу согласится с автором, что лучше начинать ATTiny2313 и хочу порекомендовать книгу Белова очень дохочего пишет. Они произвели хороее впечетление хотя изночально задумывал занятся пиками, но сам не заметил как занялся AVR. На страницах сайта хочу получить больше практических навоков. Надеюсь в дальнейшем будут устройства и сервоматорчиками.

  17. GetChiper Автор записи

    Буду стараться.

  18. crezi-alex

    Хотелось бы увидеть обучающий материал на тему этой программы пользуюсь авр студией хотелось графический вариант но что то не получается. Я или что то пропустил или это связана стем что строю алгоритм с заду на перед. побывал поискать книги но кроме автора программы на эту тему не кто не писал

  19. GetChiper Автор записи

    Есть еще одна обучалка http://www.forum.getchip.net/viewtopic.php?f=16&t=354

    Книг по Билдеру Вы не найдете, так как он не распространен и книги под него писать, наверное, не выгодно. И не найдете в будущем — автор программы прекратил поддержку и проект не развивается. 🙁

  20. crezi-alex

    спасибо! печально что развитие прекращено даже не знаю что сказать очередной минус к тому что код как я понял наследовать нельзя мало обучающего материала, но к плюсам наглядность которая подкупает прям своего рода визуал студия

  21. wzn

    Я в своё время сделал к AB преобразователь. Преобразует его бинарник и листинг в обычный ассемблер, почти готовый для компиляции. Тогда AB еще имел ограничения, а мой проект был заметно больше. Делал его исключительно на AB, затем получал своим преобразователем отдельные модули, стыковал полученные тексты в один большой кусок с получением бинарного кода на 8КБ. Теперь ограничений нет, но и сейчас я контролирую генерируемый АВ код читая тексты ассемблера. Там сразу видно, какие коды к чему приводят. Выкладывал где-то на Radiokot.ru. Без АВ я этот код точно бы не написал.

  22. wzn

    Забыл указать адрес. ftp://annaanna.nm.ru/MyProg.rar. На текущий момент, почему-то, доступен только парольным доступом к FTP. Надеюсь, временно…

  23. wzn

    Разобрался, почему нет доступа… http://annaanna.nm.ru/MyProg.rar комплект. Ну и до кучи, чуть более свежая, последняя версия (выкладываю впервые) http://annaanna.nm.ru/ABTOASM_v1_8.rar (тоже 2006года).
    Только что проверил на последнем AB — всё прошло!

  24. GetChiper Автор записи

    чет ссылка не работает. Может на какой нибудь яндекс диск скинуть?

  25. Mihail_Nik

    Добрый день. Спасибо за сайт!!!
    Подскажите пожалуста, имя константы хранящей размер ОЗУ, если таковая имеется. Дело в том что я сейчас творю псевдодиспетчер задач и задержек на АВ, и возникла необходимость попасть в начало стека.

  26. GetChiper Автор записи

    По умолчанию, в среде объявлены следующие системные константы:
    “CPU_Clock_Frequency” – частота работы ядра в Герцах;
    “IO_Org” – начальный IO регистров в адресном пространстве SRAM.
    “SRAM_Size” – размер SRAM в байтах;
    “SRAM_Org” – начало области SRAM;
    “EEPROM_Size” – размер EEPROM в байтах.
    “Flash_Size” – размер Flash памяти в 16-разрадных словах.
    “Flash_Page_Size” – размер страницы программирования Flash памяти в 16-разрядных словах.

  27. Arcanum

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

  28. GetChiper Автор записи

    🙂
    это и есть ассемблер
    если Вы знаете ассемблер — Вы поймете насколько эта среда облегчает жизнь ассемблерщику!

    Вот для примера:
    вместо «MOV R0,R1» записывается «R1->R0»,
    вместо «LDI R16,63» — «63->R16»,
    вместо «ST X,R2» — «R2->[X]»,
    вместо «LSR r7» — «r7>>»,
    вместо «SBI PortB,3» — «1->PortB.3» и так далее.

    По моему, очень даже просто и логично.

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

    Ну а если серьезно, я конечно понимаю о чем Вы пишете. Создавая устройства на Билдере я обрекаю их не определенное «одиночество». Но переходить на чистый ассемблер я не хочу — уж слишком непросто создавать на нем сложные структуры, а Си не даст мне такого контроля в использовании ресурсов МК. Вот такая дилемма 🙁

  29. SIG74

    Для Си программа не предназначенна?

Добавить комментарий