Урок за създаване на алгоритъм. Среда за програмиране Algorithm Builder. JMP Vector елемент - безусловен скок

Конструктор на алгоритъм за AVR

Средата е предназначена за производство на пълен цикъл на разработка от въвеждането на алгоритъма, включително процеса на отстраняване на грешки и завършвайки с програмирането на чипа. Разработването на програма може да бъде както на ниво асемблер, така и на макро ниво с манипулиране на многобайтови стойности със знак.
За разлика от класическия асемблер, програмата се въвежда като алгоритъм с дървовидни разклонения и се показва на равнина, двуизмерно. Мрежата от условни и безусловни скокове се показва графично в удобна векторна форма. Това също освобождава програмата от безброй имена на етикети, които в класическия асемблер са неизбежен баласт. Цялата логическа структура на програмата става визуална.
Графичните технологии отварят нови възможности за програмистите. Визуализацията на логическата структура намалява вероятността от грешки и намалява времето за разработка. Има такова нещо като дизайн на алгоритъма, което предполага някакъв артистичен вкус на програмиста.
Според потребителите, в сравнение с класическия асемблер, времето за разработка на софтуер е намалено 3-5 пъти.
Поддържа се автоматично преобразуване на низове от ANSI кодове на Windows в кодове на русифициран буквено-цифров LCD дисплей.
Средата съчетава графичен редактор, компилатор на алгоритъм, симулатор на микроконтролер, вграден програматор.
Когато използвате вътрешносхемния програматор, можете да свържете микроконтролера директно към LPT на компютъра без допълнителни устройства. Програматорът отчита броя на препрограмираните чипове, като съхранява брояча директно в него.

Средата е проектирана да работи в Windows 95/98/2000/NT/ME/XP.


Версия на програмата: 4.20
Размер на програмата: 1,15 Mb

Алгоритъмните оператори са разделени на две групи.

Първата група се състои от елементарни оператори, които изпълняват една елементарна инструкция на микроконтролера. Програмирането с помощта на такива изрази осигурява разработването на програмата на ниво асемблер. В алгоритъма тези оператори се показват с нормален (неудебелен) шрифт.

Втората група се формира от макрооператори, които при компилиране се преобразуват в набор от необходими елементарни инструкции на микроконтролера. Макрооператорите ви позволяват да извършвате по-сложни преобразувания, включително многобайтови, в удобна форма.

Инструкциите за алгоритъм се записват главно в обекти „Поле“, условните скокове се изпълняват чрез обекта „Условие“, а безусловният скок през „

JMP вектор. Форматът на нотация на оператора се различава значително от класическия асемблер. Изграден е на визуално-функционален принцип и съдържа изображение на извършваното действие. Нотацията на израза трябва да следва модел, приет от компилатора.

По-долу в таблицата има шаблони на всички възможни елементарни оператори за AVR микроконтролери. Трябва да се има предвид, че някои прости типове микроконтролери съдържат неизвестен набор.

Символът “#” в операторния шаблон приема константа, директно или като алгебричен израз, “Rd” и “Rr” са работни регистри, “Pn” е входно-изходен регистър.

Операторите са представени под формата на таблица.

Коментар на операнд

R Работен регистър, стандартен или деклариран в раздел Работни регистри: (...)

# Константа (...)

SRAM Var Променлива, декларирана в секцията SRAM: (...)

EEPROM Var Променлива, декларирана в секцията EEPROM: (...)

[#] SRAM клетка, адресирана директно

[X] SRAM клетка, адресирана индиректно от X

[--X] SRAM клетка, адресирана индиректно от X с предварително декрементиране

SRAM клетка, адресирана индиректно на X с пост-инкремент

[Y] SRAM клетка, адресирана индиректно от Y

[--Y] SRAM клетка, адресирана индиректно от Y с предварително декрементиране



SRAM клетка, адресирана индиректно от Y с пост-инкремент

Индиректно адресируема SRAM клетка при Y, изместена с # байта

[Z] SRAM клетка, адресирана индиректно от Z

[--Z] SRAM клетка, адресирана индиректно от Z с предварително декрементиране

SRAM клетка, адресирана индиректно от Z с пост-инкремент

SRAM клетка, адресирана индиректно в Z с изместване на адреса с # байта

P I/O регистър (...)

EE[#] EEPROM клетка, адресирана директно

Операндите, маркирани с (...), могат да бъдат обявени за многобайтови. Разрешено е заместване на операнди с различни формати. В този случай, ако операндът, който получава резултата от операцията, е по-къс от другия, тогава измерението на операцията ще бъде ограничено до най-малкото, в противен случай липсващите байтове ще бъдат запълнени с нули. Трябва да се има предвид, че за коректността на операцията със стойности, които отчитат знака, и двата операнда трябва да имат същия формат, в противен случай отрицателното число може да бъде изкривено. Форматът на операндите в макро условия трябва да бъде един и същ.

Операндите с индиректно адресиране са еднобайтови. За многобайтови операции с индиректно адресиране е необходимо да се предаде техния формат. За да направите това, трябва да добавите двоеточие и декларация за формат към записа, например:

#hAB3E->[Y]:Дума

такъв макро израз ще бъде преобразуван в следната последователност от изрази:

При многобайтови макрооператори, с изключение на изместване надясно, действията започват от младия байт (в оператори за изместване вдясно, от старшия байт). Като се има предвид това, има ограничения върху възможността за създаване на макрооперации с индиректно адресиране:

За операции, които започват с младия байт, не е възможно да се използват предварително декларирани операнди, например: [--X]:Word+24000

За операции, които започват с високия байт (десни смени), не е възможно да се използват операнди след нарастване, например: :Int24>>

В допълнение, не е възможно да се създаде многобайтов макрооператор с операнд [X], тъй като няма индиректно отместване за регистъра X в набора от инструкции на AVR (

). Използвайте или [--X].

Ако не е възможно да се създаде макро операция, компилаторът ще издаде съобщение: “

Такава макрооперация не може да бъде създадена.

Макро инструкциите се пишат изключително в обекти "Поле". Шаблоните на възможните макрооператори са представени в таблицата:

Коментар на шаблона

* -> * Копиране

* + * Аритметично събиране

* - * Аритметично изваждане

* & * Побитова операция „И“.

*! * Побитова операция „ИЛИ“.

* ^ * Побитова операция XOR

* Нулиране (напишете нула)

* ++ Увеличение

* -- Намаляване

- * - Побитова инверсия

* >> Логично изместване надясно

> * >> Логично изместване надясно с пренасяне

± * >> Аритметично дясно изместване

<< * Логический сдвиг влево

<< * < Логический сдвиг влево с переносом

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

Когато се компилират, макро операторите се преобразуват в набор от елементарни инструкции за микроконтролер. В този случай, за да се реализира такъв набор, като правило се използват междинни регистри r16 и r17. Следователно, когато се използват макрооператори, за да се избегнат недоразумения, не се препоръчва използването на тези регистри и е препоръчително предварително да се запише тяхното съдържание в рутинните процедури за обработка на прекъсвания в стека.

Ако макрооператорът предполага операция с директна константа, тогава в този случай е по-целесъобразно да се използват работните регистри, декларирани в горната половина. В противен случай ще се използват междинни инструкции за зареждане на части от константата в регистър r16. Това може да доведе до увеличаване на размера на кода, до удвояване, въпреки че такъв запис няма да бъде грешен.

Трябва да се има предвид, че флаговете, повдигнати от макрооперациите, са неадекватни за подобни операции на ниво елементарни операции на микроконтролера и използването им за преходни условия ще бъде неправилно.

За да реализирате цикли, е удобно да използвате условието на макроса: „R--“. Той включва намаляване на еднобайтов регистър и разклоняване, ако резултатът е различен от нула.

Обект "Етикет" - (етикет)

Представлява вертикална черта, разположена вътре в блок с инструкции, и незадължително име, поставено отляво или отдясно на чертата. Етикетът има за цел да посочи места в алгоритъма, където могат да се правят условни и безусловни скокове. За да го въведете, трябва или да изберете елемента от менюто "Object\Label", или да натиснете клавишите "Alt + L", или да натиснете бутона с изображението на буквата L в лентата с инструменти. Ако е необходимо, конкретен програмен адрес може да бъде присвоен на етикет; за това преди името (ако има такова) трябва да напишете константа или алгебричен израз, който дефинира този адрес. За да обърнете местоположението на името на етикета, натиснете клавиша „Tab“.

Сервизни флагове за прекъсване.

За удобство при програмиране Algorithm Builder поддържа специален тип етикети - етикети за услуга за прекъсване. За да се обслужи прекъсване по обичайния начин, е необходимо да се постави безусловен код за прескачане към съответната подпрограма на адреса на вектора за прекъсване. Когато използвате специален вид етикети, компилаторът прави всичко това автоматично. За да направите това, трябва да дадете на етикета (връх) стандартно име на прекъсване и да го маркирате като макросъщност, като натиснете клавиша „F2“, името ще се покаже с удебелен шрифт. Същият резултат може да се получи по-лесно, като изберете елемента от менюто „Обекти\Вектори за прекъсване\…“.

След като срещне поне един такъв етикет, компилаторът ще запълни свободното пространство на векторите за прекъсване с кода за връщане от рутинната услуга за прекъсване („RETI“) и на съответния адрес за прекъсване ще постави кода за безусловен скок към този етикет.

Обект "Vertex" - (връх на блока)

По своя дисплей и предназначение той е напълно идентичен с етикета, но за разлика от него задава местоположението на блока върху работната равнина и винаги е нейното начало. За да създадете връх, трябва или да изберете елемента от менюто "Object\Vertex", или да натиснете клавишите "Alt + V", или да натиснете бутона с изображението на буквата V на лентата с инструменти, или да използвате мишката, като щракване с левия бутон върху желаното място на полето в клавишни комбинации

Alt+CTl+Shift".

Обект „Условие“ – (условен скок)

Конструктивно най-сложният. Обектът е предназначен за изпълнение на условни преходи. Това е овален контур, вътре в който е въведено условието за преход и възможен вектор под формата на прекъсната линия със стрелка в края, близо до която е възможно незадължително име на вектор. За да бъде векторът правилно адресиран, краят му трябва или да завършва в етикет, или връх, или сегмент от друг вектор, или да има името на адресирания етикет.

Редактирането на вектор се извършва или чрез използване на клавишите за посока в комбинация с клавиша „Alt“, или чрез използване на мишката с натиснат ляв бутон, също в комбинация с клавиша „Alt“. За да превключите от редактиране на условието към редактиране на името на вектора и след това да обърнете местоположението му, натиснете клавиша „Tab“. За да въведете нов обект, трябва или да изберете елемента от менюто "Обект\Условие", или да натиснете клавишите "Alt + C", или да натиснете бутона с буквата C в лентата с инструменти.

Оператори за условно пропускане на следващия оператор.

Има три опции за конструиране на обекта „Условие“:

1. Векторът на обекта липсва и името на вектора или липсва, или съдържа запазената дума „Пропускане“. В следните примери операцията се извършва:

“[X]->r2” ще бъде пропуснато, ако е изпълнено условието “r1=r2”.

“[X]->r2”

2. Написано е обратно условие, векторът липсва, а като име на вектора е въведена инструкцията, която трябва да се пропусне. В този случай обектът ще се интерпретира като: изпълнение на инструкцията, ако условието е изпълнено. Следващите примери са напълно идентични.

“[X]->r2”

3. Ако следващата инструкция е кратко безусловно разклоняване (RJMP), може да се напише обратно условие и векторът на това условие ще се интерпретира като следващо безусловно разклонение, така че обектът ще се интерпретира като: вземете кратко безусловно разклонение ако условието е изпълнено. Следват три напълно идентични примера.

R1=R2 стрелка към линията, където искате да отидете

Среда за отстраняване на грешки AVR STUDIO.

Средата за отстраняване на грешки за разработване на приложения за микроконтролери от семейството AVR съдържа:

  • Преводач на сглобяване (макроасемблер на Atmel AVR)
  • Дебъгер
  • Софтуер от най-високо ниво за поддръжка на вътрешносхемно програмиране (In-System Programming) ISP)

Средата за отстраняване на грешки поддържа изпълнението на програми както под формата на текст на асемблер, така и под формата на изходен език C. Средата за отстраняване на грешки AVR поддържа всички видове AVR микроконтролери и има два режима на работа:

  • режим на софтуерна симулация
  • режим на управление на различни видове вътрешносхемни емулатори от Atmel (In Circuit Emulators)

Потребителският интерфейс не се променя при избор между режими за отстраняване на грешки.

Средата за отстраняване на грешки AVR STUDIO ви позволява да отстранявате грешки в приложения с помощта на вградения софтуерен симулатор или външен емулатор в схемата.При стартиране наличието на емулатор се открива автоматично на един от серийните портове на компютъра. Когато бъде намерен емулатор, се избира основната система за отстраняване на грешки.Ако не бъде намерен емулатор, отстраняването на грешки се извършва на вградения софтуерен симулатор на AVR.

Вътрешният емулатор ви позволява да отстранявате грешки в приложението директно върху крайния продукт. когато работите в реално време, отстраняването на грешки в емулатора е по-бързо, отколкото в софтуерния симулатор. информацията за текущия режим на отстраняване на грешки се показва в лентата на състоянието на AVR STUDIO

AVR STUDIO предоставя две стъпка по стъпка команди Step Over и Trace into за отстраняване на грешки в програми.Разликата между тях е, че командата Step Over не работи в подпрограми.

За наблюдение на работата на програмата е предвиден режим на отваряне на няколко прозореца.Прозорците се отварят чрез меню Изглед или бутони на лентата с инструменти.

средата за отстраняване на грешки не поддържа следните режими и MK възли

  • аналогово-цифров преобразувател
  • аналогов компаратор
  • режим часовник в реално време
  • режим на ниска мощност

За хардуерна поддръжка на AVR STUDIO се прилага

  • стартови и специализирани комплекти за разработчици
  • вътрешносхемни програмисти
  • вътрешносхемни емулатори

По време на отстраняването на грешки можете да инициализирате вътрешната RAM и EEPROM (във файл за превод във формат .EEP) или да запишете съдържанието им във формат .HEX. За да направите това, използвайте елемента Up / Download Memory в менюто File

Чрез менюто Файл можете да отворите фърмуер, създаден от други потребители Отваряне на програми за печат, написани Печат, проверка на състоянието на устройствата, свързани към серийния порт Настройка на COM порт.

Менюто Tool съдържа команди за стартиране на контролни програми

Менюто Изглед съдържа зрители:

  • програмни клетки от паметта
  • прозорец на паметта за данни Данни
  • eeprom прозорец eeprom
  • регистрира I/O портове прозорец нов IO
  • Прозорец за изпълнение на програмата Прозорец на паметта
  • контрол върху промените в променливите за наблюдение
  • показване на състоянието на програмния брояч, указателя на стека на съдържанието на регистъра на състоянието SREG и индексните регистри X, Y и Z на текущото време за изпълнение на часовниковата програма на ядрото на микроконтролера Прозорец на процесора
  • преглед на състоянието на регистрите Регистри (Ако по време на изпълнение на програмата в следващия цикъл стойността на който и да е регистър се промени, тогава този регистър ще бъде маркиран в червено. В този случай, ако в следващия цикъл стойността на регистъра остане същото, тогава цветното осветяване ще бъде премахнато. Подобен контрол върху промените се прилага в паметта за входно изход и променливи на Windows.)
  • наблюдение на състоянието на I/O прозорец на периферните устройства

Менюто Редактиране е подобно на стандартния текстов редактор.

Менюто Windows ви позволява да регулирате разположението на прозорците, които се отварят

Помощта съдържа помощна информация на английски език

project ви позволява да отваряте и създавате нови проекти и да запазвате тяхното съдържание

Менюто за отстраняване на грешки на програмата за отстраняване на грешки ви позволява да

точка на прекъсване настройва избора на точки на прекъсване

Trace& задейства следи

Опцията ви позволява да симулирате или емулирате програмата

Създаване на програма

Отворете AVR студио 3.56

Отворете менюто за нов проект в менюто за проекти в прозореца за създаден нов проект, който се появява, въведете името на проекта в реда за име на проекта. Същото име ще бъде автоматично копирано в началния прозорец на файла.

За да определите папката, в която ще се намира проекта, щракнете върху бутона .... Отдясно на прозореца за местоположение в отворения прозорец за избор на папка, в реда на текущата папка, трябва да напишете името на папката. И щракнете върху изберете и след това се върнете към прозореца за създаване на нов проект

След това изберете типа на проекта Atmel AVR Assembler à Next à изберете deug платформа и устройство à debug platform à avr Simulator в прозореца на устройството тип микроконтролер, ако честотата е по-висока, ще се появи съобщение

Така активираме прозореца на асемблера с проекта

Символ ". “ директива за асемблер

";" коментари, които не засягат работата на програмата

F2 търсене на командни маркери в програмата

Ctrl +F2 задава маркери за отстраняване на грешки

F7 сглобете програмата със запис във формат. шестнадесетичен

F11 отстраняване на грешки отворено работно пространство

Shift + F5 - Нулиране на нулиране

Ctrl + F5 - Назад спиране на отстраняването на грешки

F9 - задайте етикет на точката на прекъсване

F5 - стартирайте програмата до точката на прекъсване

Ctrl + F10 преминава към изпълнението на командата, маркирана с курсора

Превод и проверка на правописа.

Проект à AssembleàProject Output Този прозорец съдържа информация за броя думи на кода и данни за наличието на грешки и друга информация. За да локализирате грешки, поставете курсора на мишката върху съобщението и щракнете двукратно върху левия бутон на мишката. В резултат на това курсорът ще бъде поставен върху реда, причинил съобщението за грешка, и този ред ще бъде маркиран в цвят. Ако оригиналният текст на асемблер съдържа сегмент от енергонезависими данни, тогава преводът ще създаде файл с резолюция .eep. Този файл съдържа данните за вътрешната EEPROM на MCU и има същия формат като изходния файл.

Резултатът от превода е изходният файл

Отстраняване на грешки в проект

Отстраняването на грешки изисква обектен файл

Дебъгерът се стартира чрез процедурата

Създайте и стартирайте в контролния панел

В началото се извършва преводът на входния асемблерен файл, в който се генерира и обектният файл, след което обектният файл се поставя в дебъгера.

За по-стари версии е предоставена опцията за превод на обектния файл; с тази опция не можете да редактирате изходния файл на програмата директно в програмата за отстраняване на грешки

За да генерирате обектен файл, трябва да посочите формата на изходния файл на преводача

Когато за първи път стартирате програмата за отстраняване на грешки в прозореца Option à Simulator Option, изберете типа устройство на микроконтролера и честотата на честотата на ядрото на процесора

По време на отстраняване на грешки програмата може да бъде изпълнена

Напълно отстраняване на грешки в стъпката àavto

В debug atrace стъпка по стъпка

Проследяване на блокове на функции, отстраняване на грешки в няколко стъпки

До точката, посочена от курсора, отстраняване на грешки àИзпълни до курсора

Точки на прекъсване à превключване на точка на прекъсване

За отстраняване на грешки в стъпков режим използвайте командите

Ster Over (не работи в подпрограми) и проследяване в

Прегледът на програмата се извършва в менюто View view, регистрира регистри, периферни устройства в прозореца I / O Windows

Лекция 15 програмисти Програмист XXX прог

Програматорът поддържа следните файлови формати:

Стандартен/разширен Intel HEX

Те са за програмиране:

чипове памет,

вътрешен PROM на микроконтролери,

Програмируеми логически чипове (само за ChipProg+, MultiProg).

Програматорът е предназначен за работа с IBM PC съвместим компютър. Комуникацията с компютъра се осъществява чрез стандартен порт за принтер.

Как да работите с програмиста:

Извадете чипа от блока на програмиста (ако е бил

инсталиран).

· Свържете програматора към AC 220V.

За MultiProg включете превключвателя на тялото на програмиста

храна. Зеленият светодиод трябва да светне, за да покаже захранването

захранване на програмиста.

Свържете програмиста към стандартен порт за принтер

компютър с помощта на включения комуникационен кабел

програмист.

· Стартирайте софтуерната поддръжка xxxProg на компютъра.

· В софтуерната поддръжка задайте желания тип чип.

Инсталирайте чипа в гнездото на програмиста (чипове

са монтирани в гнездото в съответствие с шаблона на кутията

програмист).

Извършете необходимите действия с микросхемата. Ако в

процесът на работа с микросхемата на тялото на програмиста ще светне в червено

Светодиод "ALARM" и на екрана на компютъра ще се появи предупредително съобщение.

съобщение за работа на токова защитна верига, това означава, че

микрочипът е дефектен.

Преди да изключите програматора или да промените типа на чипа

трябва да извадите чипа от гнездото.

· Изключете програматора.

· Изключете програматора от компютъра.

Комуникационният интерфейс програматор-компютър е проектиран по такъв начин, че не само да минимизира натоварването на порта на компютъра, но и да позволява превключване между програмиста и компютъра във всяка последователност.

Софтуерът xxxProg по отношение на взаимодействието с микросхеми е изграден според класическата схема на програмистите "файл" - "буфер" - "микросхема". Буферите на паметта са внедрени в софтуерната поддръжка на програмиста. Буферът на паметта е междинна връзка между файла и чипа:

Файл<---->Буфер<---->Чип

Един от основните елементи на програмиста са буферите на паметта. Буферът на паметта е обект, предназначен да съхранява данни. Буферът на паметта на програмиста е междинна връзка между файла и чипа.

xxxProg прилага гъвкава структура на буферите на паметта:

· Разрешено е създаването на безкраен брой активни буфери.

Само липсата на безплатно

памет в системата.

Всеки буфер съдържа определен брой

подслоеве. Всеки подслой е свързан с конкретно адресно пространство.

инсталиран микрочип.

Например,

- за чипа Intel 87C51FA всеки буфер съдържа

два подслоя: подслой на кодова памет и подслой на кодираща таблица

(таблица за криптиране);

- за чипа Microchip PIC16F84 всеки буфер има свой собствен

състоящ се от три подслоя: подслой на кодова памет, подслой на памет за данни

EEPROM, подслой от потребителски идентификатори.

Позволено е да има неограничен брой прозорци

съдържанието на всеки буфер.

Такава гъвкава реализация на буферната система позволява на потребителя много лесно да манипулира няколко различни масива от данни, като ги поставя в различни буфери. Всички файлови операции (зареждане/запазване на файл) взаимодействат само с буфера. Тези. можете да заредите файла в буфера и да запишете съдържанието на буфера във файл. Взаимодействието с микросхемата е изградено по подобен начин. Всички манипулации с чипа (като четене, писане, сравняване) използват само буфера. По този начин е възможно да се прочете чипът в буфера, да се запише съдържанието на буфера в чипа, да се сравни съдържанието на буфера и чипа и т.н. Директното взаимодействие между файла и чипа не е разрешено.

Програмистът прилага система от тестове за производителност, която позволява да се открият хардуерни повреди още на етапа на инициализация и по този начин да се предотврати възможна повреда на микросхемите на потребителя.

Тестовата система е разделена на две групи:

· тестване на качеството на комуникация с оборудването на програмиста, включва само тестване на качеството на комуникация с оборудването на програмиста.

· пълно тестване на целия хардуер на програмиста включва пълно тестване на целия хардуер на програмиста. Започва веднага след приключване на първата група тестове. При извършване на пълен тест на тестовия DIP блок на програмиста се появяват различни тестови сигнали, които могат да деактивират инсталираните в него микросхеми. Следователно, преди да активирате теста, потребителят ще бъде предупреден да премахне чипа от блока.

Ако тестовата система открие хардуерен дефект, потребителят ще бъде предупреден за инцидента и по-нататъшната работа с програмиста ще бъде невъзможна.

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

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

Създаването на алгоритми може да се осъществи на ниво асемблер или на макро ниво, базирано на работа с многобайтови стойности, като се вземе предвид знакът. Освен това макро операторите включват най-често срещаните набори от команди.

Всички разработени програми са представени под формата на разклонени дървовидни блокови диаграми, преходните мрежи са показани графично във векторна форма. Ако според условието е необходимо да отидете на някое място в програмния код, тогава е достатъчно да начертаете вектор там. Това освобождава софтуера от множество имена на етикети. В случай, че клонът е твърде дълъг, винаги е възможно да адресирате клона към името на етикета. Видимостта на такава логическа структура, според уверенията на разработчиците, значително намалява времето, необходимо за писане на код и намалява броя на грешките.

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

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

Наблюдавайте режима за отстраняване на грешки в ядрото с помощта на друг адаптер (всички диаграми са налични в документацията на софтуера) ви позволява да наблюдавате вътрешното състояние на истински кристал във всяка точка на прекъсване. За свързване на контролера с компютър, по избор на потребителя, се разпределя само един изход. Дебъгът на чип се прилага за всеки тип чип, който има SRAM.

Въпреки очевидните си предимства, Algorithm Builder е малко познат в радиолюбителската среда. Това отчасти се дължи на факта, че до 2010 г. средата за визуално програмиране беше платена, безплатната демо версия ограничаваше кода до два килобайта. Днес софтуерът се разпространява абсолютно безплатно. Папката с инсталираната програма може да се копира на друг носител и да работи преносимо. Софтуерът се доставя с ръководство за потребителя. Статията разглежда редица най-прости работи и предоставя диаграми на програмисти за USB и COM портове.

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

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

Софтуерът работи на операционни системи Microsoft Windows 95, 98, 2000, NT, ME, XP, Vista и 7.

Разпределение на програмата:Безплатно

Материалите на статията са подготвени в катедрата по автоматизация, информатика и системи за управление (AIiSU) на Московския държавен индустриален университет (GOU MGIU).
(От 2011 г. MGIU се нарича FGBOU VPO "MGIU").
Автори: Крюков А.И., Шубникова И.С., Тройков С.М.

Повече от 35 години катедрата AIMS подготвя професионалисти в разработването и експлоатацията на електронни, микропроцесорни, компютърни, роботизирани, мехатронни и информационни системи за управление на автомобилната и космическата техника, машиностроенето и бизнеса. Изследователската работа на екипа на катедрата се извършва в области, свързани с разработването на системи за подпомагане на вземането на решения, базирани на технологии за изкуствен интелект, анализ и синтез на процеси на управление на сложни системи, контрол и интелигентно откриване на хардуерни повреди. Важна област на научната дейност на катедрата са изследванията в областта на автоматичните и електронните системи на превозните средства.
Има голям брой различни приложения за писане на контролни програми за Atmel MC - това са среди за разработка и отстраняване на грешки на езици на ниско ниво (например безплатния пакет AVR Studio за разработване на програми на езика AVR Assembler), среди за разработка на езици от високо ниво (като средата WinAVR за разработване на програми на C-подобен език) и дори има графична среда за разработка на софтуер и отстраняване на грешки, наречена „Algorithm Builder“.

Algorithm Builder се отличава от всички останали среди и ние ще се съсредоточим върху него. Акцентът на това приложение дори не е, че е безплатно, а че кодът дори не е написан в него, а е начертан под формата на блок-схеми на алгоритми, което значително намалява времето за разработка на приложението. Тази среда осигурява пълен цикъл на разработка, от въвеждане на алгоритъм, включително отстраняване на грешки, до програмиране в чип в схемата. В резултат на това цялата логическа структура на програмата става напълно визуална.

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

За да не пренаписвам цялото ръководство за работа със средата на Algorithm Builder, съветвам ви да го прочетете сами, особено след като приложението е местно производство и съдържа подробно описание на руски въз основа на примерина работа с него. Въз основа на личен опит можем да кажем с увереност, че това ръководство (между другото, далеч от обемно - само 20-30 минути обучение) е достатъчно, за да разберем напълно и разберем този софтуерен продукт.

Можете да изтеглите Algorithm Builder от http://algrom.net/russian.html. А процесът на разработване на контролна програма може да се види на връзка. По този начин ще представим по-нататък готовата програма в описаната среда за разработка с най-подробните коментари към нея.

Първо трябва да изберете типа кристал (в нашия случай Atmega8) в менюто Options / Project Options и да зададете тактовата честота на 8000000 Hz (8 MHz) на същото място. След това нулираме кристала при стартиране (Elements / Interrupts / Reset). След това инициализираме стека, като изберете Elements / Customizer ... / Stack Pointer (SP), ще се отвори прозорец, с който просто трябва да се съгласите, като щракнете върху „OK“ (фиг. 2).

Ориз. 2. Персонализатор на стека

Следващата стъпка е да инициализирате приемо-предавателя USART (не се изненадвайте от появата на буквата „S“ в съкращението - това е по-модерна версия на UART, която се различава от нея по възможността за предаване / получаване на данни не само в асинхронен режим, но също и в синхронен режим), като изберете менюто Elements / Customizer ... /USART. В прозореца, който се отваря (фиг. 3), в секцията Receiver поставете отметка в квадратчетата до Enable (включете приемника на данни) и Complete interrupt enable (разрешаване на прекъсвания след получаване на данни), след което поставете отметка в квадратчето до Double Speed, задайте размера на символа на Character Size: 8 - bit и задайте скоростта на трансфер на данни Baud Rate = 9615 bps (когато щракнете върху избора на скорост на трансфер на данни в менюто, трябва да изберете 9600 bps, 9615 bps се получава поради преобразуването на тактовата честота до 8 MHz).


Ориз. 3. USART Customizer

Основното тяло на програмата ще се състои от поредица от проверки на контролния код (Списък № 1). Идеята е, че компютърът ще изпрати оперативен код чрез UART, а MK ще го получи и ще разработи подходящите контролни действия върху задвижването на лопатките на вентилатора и сервото. Ще има общо три такива кода (самите кодове могат да бъдат измислени абсолютно всякакви):

  • $31 - включете задвижването на лопатките на вентилатора;
  • $20 - изключете задвижването на лопатките на вентилатора;
  • $A1 - повикване към сервото.

  • Ако с първите два кода всичко е ясно, тогава с третия не е толкова просто - $A1 е само команда за достъп до серво задвижването, тогава трябва да получите друг код на ъгъла на въртене. Експериментално беше установено, че варира от $05AF до $154F. Какво общо има с изпращането от PC и съответно приемането от страна на МК, започвайки от младия байт. Също така ще деактивираме прекъсванията за получаване на данни чрез USART за времето на изпълнение на командата - в противен случай може да се окаже "каша" от данните.

    Обява #1

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

    Обява #2

    Краят на получаване на данни чрез UART предизвиква прекъсване USART_Receive_Complete (ако в момента не е деактивирано в основното тяло на програмата), което може да бъде зададено в кода чрез менюто Elements / Interrupts / USART_Receive_Complete. В тялото на манипулатора трябва да запишете всички използвани в него регистри в стека и в края на манипулатора да ги възстановите обратно от стека. Също така в този манипулатор можете да получите байта на състоянието (регистър UCSRA), за да проверите данните за грешки и, разбира се, самите данни от UDR регистъра (списък № 3).

    Обява #3

    Ъгълът на въртене на сервото зависи от ширината на импулса, приложен към него, като същевременно се поддържа постоянен период (периодът е 20 ms, а продължителността на управляващия импулс е от 0,8 до 2,2 ms, въпреки че тези стойности \u200b може да се различава леко за различните сервосистеми) за това се нуждаем от подпрограма за обработка на ъгъла на въртене на серво (списък № 4). Времето на управляващия импулс и времето на паузата ще бъдат зададени подобно на подпрограмата за забавяне. Както писахме по-горе, експериментално за кристална честота от 8 MHz установихме, че времето на импулса се дава от код в диапазона от $05AF до $154F. По този начин, знаейки времето на целия период - $9E3C (също определено експериментално), е възможно да се изчисли времето на паузата като разликата между продължителността на периода и продължителността на импулса. Остава само да изработим, подобно на подпрограмата за забавяне, времето на импулса и времето на пауза последователно и след това да повторим такъв сигнал няколко пъти (в нашия случай повторихме сигнала $ 10 пъти, т.е. 16 пъти в десетичната бройна система )

    Обява #4

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

    След това трябва да флашнете резултата от компилацията (файл с разширение *.hex без "EE_" в началото, разположен в същата папка като източника на програмата) към контролера. Това може да стане с помощта на безплатната помощна програма AvrProg, която също е включена в безплатния пакет AVR Studio. Можете да го изтеглите от сайта mymcu.ru или от atmel.com (английски сайт).

    В допълнение към помощната програма за мигане на MK, ще ви е необходим и програмист. Можете или да го купите (простите версии са сравнително евтини), или да го запоите сами.

    Ориз. 4. Схема на LPT програмиста
    Най-простият, който знам е LPT програматор, но съответно ще изисква LPT порт на компютъра, което в момента става рядкост. Идеята на програмиста е проста и се състои в свързване на LPT порта към интерфейса на ISP и директно линията Reset на контролера (фиг. 4).

    Друга версия на програмиста за самосглобяване е USB програматор (диаграмата е показана на фиг. 5), разбира се, той е по-сложен, но по-късно може да се окаже много по-удобен. Въпреки това има едно „но“ - за да го сглобите, все още ви е необходим LPT програмист, макар и веднъж. Ще бъде необходимо да се флашне контролерът за управление на самия програмист, за да се флашнат битовете FUSE. Битовете SPIEN, CKOPT и SUT0 трябва да бъдат програмирани (настроени на "0"). Обикновено MK, идващ от фабриката, т.е. новите имат вече програмиран бит SPIEN. Също така е желателно (но не е необходимо) да се програмира (зададе на "0") битът BODEN. Останалите битове трябва да бъдат непрограмирани (настроени на "1"). Това може да изисква Codevision AVR V2.03.4. Подробно описание на сглобяването на USB-програматора можете да намерите тук.

    Отличителни черти:

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

    Описание:

    Algorithm Builder е безплатна среда (условия за разпространение на безплатен софтуер) за MK 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, ATtiny863, ATtiny2


    Продължение на темата:
    Windows

    Наталия Комарова , 28.05.2009 г. (25.03.2018 г.) Когато четете форум или блог, запомняте авторите на публикациите по псевдоним и ... по снимката на потребителя, така наречения аватар ....

    Нови статии
    /
    Популярен