Створення програми дуже нагадує створення електронного пристрою Якщо ви вирішили створити якийсь пристрій, то не думаю, що почнете відразу паяти опору, транзистори, конденсатори Нехай подумки, але почнете ви з функціональної схеми

Рис 351 Функціональна схема

Функціональна схема дозволяє вам вирішити основні питання: чи будете ви використовувати для створення мультивибратора транзистори або мікросхему чи будете ви використовувати для перемикача діапазонів галетним перемикач або використовуєте мікросхему з набором ключів чи будете ви використовувати для блоку живлення мережевий адаптер або батарейку

Маючи перед очима функціональну схему, ви легко розібєте роботу на кілька етапів: створити мультивибратор створити блок живлення створити перемикач створити дільник напруги Тепер ви можете забути про устрій в цілому і зайнятися його складовими частинами Зібравши, скажімо, мультивибратор, перевіривши його роботу, провівши вимірювання напруги і споживаного схемою струму, ви готові визначитися зі створенням блоку живлення Ви можете скласти перелік всіх елементів і приступити до закупівлі компонентів Ви можете, якщо вам так більше подобається розвести плату і зробити друкарський монтаж

Розробка програми теж починається з функціональної схеми Для зображення цієї схеми давно придумали графічні елементи Після того, як ви намалювали функціональну схему програми, ви також можете приступити до продумування складових блоків

Як з електронним пристроєм, вирішуючи, чи буде воно зібрано на мікросхемах або транзисторах, так з програмою ви можете визначитися, чи буде вона «зібрана» мовою Сі чи асемблері Але в кожному разі, навіть якщо ви це не малюєте на папері, починати треба з графічного зображення програми

У міру розвитку мов програмування, у міру розвитку компютерів, і особливо це стосується мікроконтролерів, все частіше мова програмування віддаляється від машинного мови одиниць і нулів і наближається до природного людському мови Мови програмування Basic, Pascal, C досить близькі до звичайного мови Але ще зручніше при розробці використовувати графічний мову Що і зроблено в таких програмах як Flowcode і KTechlab

На жаль, для роботи програми KTechlab потрібен Linux, а для осцилографа, програма якого не працює в Linux, доводиться використовувати Windows, тому мова піде про Flowcode

Будь-яка програма містить ряд стандартних елементів, як будь-яка електрична схема містить резистори, конденсатори і тп Цей набір стандартних елементів не так великий, але дозволяє створювати безліч корисних програм

Рис 352 Набір стандартних елементів програми Flowcode

Такі елементи як Вхід або Вихід, Швидше, характерні для мікроконтролера, але введення даних і виведення даних – загальний елемент для будь-яких програм

Не виняток і Затримка (Пауза) Але для мікроконтролера вона має більше значення, ніж для прикладних компютерних програм За допомогою паузи можна формувати вихідні імпульси, можна позбавлятися від брязкоту контактів Сама Затримка формується на основі заданої тактової частоти мікроконтролера Тому треба уважно задавати правильну тактову частоту У програмі Flowcode для PIC-контролерів ця тактова частота визначається словом конфігурації, де вибирається базовий елемент тактового генератора, і в налаштуваннях проекту, де задається саме тактова частота

Галуження програми – це аналог синтаксису if… then… else Як правило, без цього елемента не обходиться жодна програма У програмуванні мікроконтролера цей елемент тісно повязаний з елементом Вхід, Який використовується для опитування кнопок або аналогових входів Він дозволяє при зміні стану входу звернутися до підпрограми (елемент Макрос) Або викликати Переривання

Перемикач – Це зручна форма обєднання послідовних елементів розгалуження в єдину конструкцію Цей елемент зявився в останніх версіях програми Flowcode, що дозволяє спростити вид створюваної програми для мікроконтролера

Елементи Мітка і перехід до мітці багато програмісти вважають ознакою «дурного тону», знаменита операція Goto, але іноді без них важко обійтися

Елемент Цикл в програмі Flowcode багатоцільовий: це і аналог оператора while, І конструкції

for, І dowhile Остаточно вид циклу визначається в його властивості

Макрос має в різних мовах програмування різні види: власне макрокоманда, процедура, функція, підпрограма Звичайно, кожна з різновидів має свої особливості в конкретних мовах програмування, але суть їх дуже схожа Тому в програмі Flowcode використовували Макрос

Оскільки мікроконтролери сьогодні майже обовязково мають вбудовані модулі: АЦП, послідовного обміну даними, широтно-імпульсної модуляції і тд, – творці програми Flowcode подбали про це, створивши елемент Готового макросу (Макрос компонента) Якщо ви використовуєте вбудований компонент, то вам не треба замислюватися про створення підпрограми для нього, досить звернутися до вже готового макросу

Мікроконтролер працює на основі мікропроцесора, «захованого за парканом портів введення-виведення» Як сьогоднішній компютер не стільки обчислює, скільки розважає нас картинками різного роду, так і мікроконтролер не так обчислює, хоча може це робити, скільки

«Трудиться в поті чола» обслуговуючи датчики і клавіатуру і виводячи інформацію на індикатори, або приводить в дію виконують устройства: двигуни, реле, тиристори Але іноді без обчислень не обійтися, тому елемент Обчислення вельми значущий Найпростіший випадок застосування цього елемента – привласнення значення змінної і робота з цієї змінної

Елемент Робота з рядками, Як і Готові макроси, Допомагає вам швидше отримати результат Фактично рядки в даному випадку – це символьні масиви При роботі з послідовним обміном інформації зручно цю інформацію передавати у вигляді рядків При обробці рядків, а це може бути, наприклад, команда, ви заощадите час, якщо використовуєте доступні функції в блоці роботи з рядками

Переривання давно стало настільки звичним елементом програми, що багато, часом, зловживають цим елементом програми Але елемент програми необхідний Якщо зазирнути в його властивості, то можна знайти перелік усіх штатних переривань І є можливість створити власне переривання, якщо штатних переривань не вистачає

Для складних програм, а мікроконтролер може виконувати досить складні завдання, може не вистачати готових елементів У цьому випадку можна використовувати Вставку на мові Сі Щоб бути впевненим, що вставка правильна, слід ознайомитися з компілятором, що входять до складу програми Flowcode Іноді доводиться звертатися до ассемблеру, якщо інші способи оптимізації програми не допомагають зменшити обсяг коду або добитися потрібного швидкодії Справа в тому, що кожен оператор мови високого рівня перекладається в безліч операторів на асемблері Добре володіючи асемблером, можна скоротити кількість команд, а, значить, і час їх виконання

А Коментарі потрібні всім: і автору програми, і читачеві програми Автор і сам швидко забуває, що він робить в тому чи іншому місці програми, а читач програми і не знає цього Програма Flowcode використовує елемент Коментар для коротких нотаток, як у мові Сі, наприклад, однорядковий коментар Але при бажанні залишити розширений коментар, ви можете використовувати операцію додавання тексту (Обєкти-Текст)

Існують різні способи налагодження створеної програми, а до неї доводиться вдаватися і професійним програмістам, є спеціальні налагоджувальні плати, можна налагоджувати на звичайній макетної платі Але будь-яка Середа розробки має оцінний модуль Є він і в програмі Flowcode Оскільки мікроконтролер рідко використовується без додаткових

елементів: кнопки, клавіатура, індикатори тощо, – у програмі є безліч таких елементів, скоріше, налагоджувальних Починаючи з версії 4, програма Flowcode, наприклад, дозволяє налагоджувати програми двох мікроконтролерів, що працюють в одному пристрої Всі налагоджувальні елементи згруповані на інструментальної панелі в ряд категорій: Обєкти, Звичайні, Входи, Виходи і тд

Додаючи ці елементи на отладочную панель, ви отримуєте доступ до Готовим макросам, Якщо вони є, якщо вони потрібні Крім функціональних властивостей, ці елементи можуть мати, наприклад, конструктивні властивості: кнопки можуть бути з фіксацією і без, індикаторні світлодіоди можуть бути різного кольору і тд І всі ці елементи повинні бути зєднані з мікроконтролером Для цього служить панель властивостей, де є Розширені властивості і Зєднання

Джерело: Гололобов ВН, – Самовчитель гри на паяльнику (Про електроніці для школярів і не тільки), – Москва 2012