Algorithm builder

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

Для початку давайте розберемося: що взагалі таке мікроконтролер (МК)? По суті, це мініатюрний комп'ютер, призначений для виконання найпростіших завдань. Все необхідне для роботи мікроконтролера укладено в одному корпусі. У мікроконтролері є різна периферія - порти введення \ виводу, таймери, інтерфейси зв'язку і т.д. Мікроконтролер має три види пам'яті, це RAM (оперативна пам'ять), FlashROM (Пам'ять програми), EEPROM (незалежна пам'ять).

Головна відмінність мікроконтролера від звичайної мікросхеми - це те, що мікроконтролер працює не за жорсткою логікою, встановленої на заводі, а програмується. Програма, класично пишеться в спеціальному середовищі на комп'ютері на одній з мов програмування, після чого переводиться на машинну мову (компілюється) і записується в пам'ять контролера. У цьому курсі все буде трохи по-іншому - програма буде не писатися, а буквально малюватися в вигляді блок-схеми. Завдяки такому підходу програма виглядає більш наочно, а час на розробку програми скорочується в 3-5 разів, в порівнянні з класичними прийомами програмування.

Algorithm Builder - середовище програмування

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

Почнемо з короткого огляду інтерфейсу програми

Algorithm builder

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

У пояснень не потребує. При наведенні курсора на елементи панелі спливають підказки.

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

Робота зі змінними і константами

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

Величезне число міток, завдяки яким можливі переходи від однієї частини програми до іншої, сильно захаращують код, і наочність програми втрачається. У Algorithm Builder переходи здійснюються набагато простіше - стрілкою (вектором). Але переходи по іменованих мітках так само можливі.

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

Симулятор показує всі зміни, що відбуваються всередині віртуального мікроконтролера. Що б перевірити роботу програми не обов'язково навіть купувати мікроконтролер! Симуляція може виконуватися покроково (із заходом у функції чи ні), до встановленої точки зупину або до виділеної ділянки.

Algorithm builder

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

Варто трохи розповісти про необхідні матеріали та інструменти

Для того, щоб завантажити програму в мікроконтролер потрібен програматор - в найпростішому варіанті складається всього з декількох резисторів і діодів (на порт 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. Це означає, що якщо ви знаєте один мікроконтролер із серії - ви знаєте і всю серію! Відрізняються вони лише обсягом пам'яті. Якщо ви розробляєте програму і розумієте, що програма не влазить в пам'ять - ви завжди зможете перейти на більш "дорослий" мікроконтролер із серії, не змінюючи при цьому самої програми.