Показ дописів із міткою Освоєння AVR - теорія і практика. Показати всі дописи
Показ дописів із міткою Освоєння AVR - теорія і практика. Показати всі дописи

вівторок, 11 лютого 2014 р.

Таймери в мікроконтролерах AVR. Теорія


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

пʼятниця, 1 листопада 2013 р.

Експеримент 6. Використання зовнішніх переривань.

   

    Розглянемо практичні варіанти використання зовнішніх переривань МК.
1. Використання переривання для роботи з кнопками.
2. Використання переривання для реагування на зовнішній сигнал.

пʼятниця, 27 вересня 2013 р.

Переривання в МК AVR. Теорія

   

     У попередніх статтях я розглядав програми, які виконувалися "в один потік", тобто усі дії знаходилися так чи інакше в одній послідовності, наприклад під час часової затримки нічого більше не могло виконуватись, кожен цикл опитувалися порти з кнопками і так далі. Така архітектура програми хоч і проста але при вимогах до швидкодії і точності часових періодів, припустимо, не підходить. В таких випадках а також для реалізації багатьох функцій МК потрібно використовувати переривання.

вівторок, 20 серпня 2013 р.

Продовження експерименту 5. Практичне використання динамічної індикації.

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

неділя, 14 липня 2013 р.

Планування флагового автомата. Набір макросів для роботи з флагами.

 
     Я вирішив перервати експеримент №5, зупинившися на програмі виводу значення регістра на індикатор, так як наступні програми складніші і потребують організації у вигляді флагового автомата. Тому я вирішив дати трошки теорії і показати декілька своїх макросів, що спрощують роботу з такою архітектурою.

Продовження експерименту 05 - Приклади реального використання динамічної індикації

   

   Сьогодні я хочу спробувати показати приклади реального використання динамічної індикації у проектах на МК.

вівторок, 2 липня 2013 р.

Експеримент 05 - Динамічна індикація. Зберігання таблиць констант в програмній пам'яті.

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

понеділок, 1 липня 2013 р.

Підпрограма затримок на основі багатобайтної арифметики. Збереження даних у стек.


     

Експеримент 04 - Використання програмного таймера у програмах для МК, Макрооперації асемблера.

     Ця стаття не входить в цикл експериментів, так як вона більше теоретична. В програмах для МК часто зустрічається задача, коли необхідно відраховувати декілька різних відрізків часу одночасно. Зазвичай для цього використовують апаратні таймери, але їх число обмежене (наприклад в ATTiny 26 є 2 таймера). З цієї ситуації є вихід, особливо коли немає потреби у високій точності відмірювання часу.

субота, 15 червня 2013 р.

Експеримент 03 - Продовжуємо прості програми. Кінцевий автомат.

   
    В попередніх експериментах я показував окремо різні функціональні можливості простого програмування МК. Тепер настав час об'єднати отримані знання. Отже я вирішив написати декілька програмок, де будуть об'єднані вивід у порти, зчитування даних з порта, часові затримки. Також спробую реалізувати відмінну від простого циклу архітектуру програми.
     Отже ставимо завдання:
1. Програма що суміщає 1 і 2 - тобто вмикає світлодіод, що відповідає натиснутій кнопці, але світлодіод повинен блимати.
2. Програма "бігучої крапки", кнопки 3 і 4 повинні міняти напрям руху крапки, крапка повинна рухатись поки кнопка натиснута, при відпусканні кнопки зупиняється. Кнопка 5 міняє "бігучу крапку" на "бігучу тінь", повторне натискання повертає "бігучу крапку".

середа, 29 травня 2013 р.

Трохи про архітектуру програм для МК

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

понеділок, 27 травня 2013 р.

Продовження експерименту 02. Команди асемблера. Оптимізація програми.

     В цій статті, як я і обіцяв, покажу деякі важливі функції асемблера, що дозволяють оптимізувати код програми, а також зробити програму легшою для розуміння. А на початку, дам довідкову інформацію по усім командам асемблера. Скачати файл в форматі Microsoft Word   або PDF.

пʼятниця, 24 травня 2013 р.

Експеримент 02. Найпростіша реалізація часових затримок, умовні переходи в асемблері.

     У першому експерименті ми написали найпростішу програму, яка використовує порти вводу-виводу. Але фактично, програма нічого корисного не робить - такий самий результат можна було б отримати, просто з'єднавши кнопки зі світлодіодами. Тому треба спробувати поставити задачу поскладнішу - наші світлодіоди повинні блимати, а не просто світитися.

середа, 22 травня 2013 р.

Продовження експерименту 01. Ще трохи асемблера :-)

Ще раз поміняємо програму

     Тепер доведемо нашу програму до логічного завершення. Для початку поставимо завдання відображати свіченням світлодіодів натискання відповідних кнопок. (зараз у нас світлодіоди гаснуть при натисканні кнопки).

Експеримент 01. Порти вводу/виводу, робочі регістри загального призначення.


     Отже починаємо практичні експерименети з МК. В цій статті розглянемо основи, без яких не обходиться ні один проект на МК. Це використання портів вводу/виводу і робочих регістрів загального призначення. І справді - який зміст в МК, який не зв'язується з "оточуючим середовищем" (а це відбувається через порти В/В). А без використання робочих регістрів загального призначення (РРЗП) практично неможлива ні одна програма для МК.

понеділок, 20 травня 2013 р.

середа, 15 травня 2013 р.

Що ж таке мікроконтроллер і для чого потрібен

     А що ж таке той мікроконтролер (МК)? Якщо сказати по простому то фактично це цілий комп'ютер в одній мікросхемі! Просто він дуже простий по характеристиках (порівняно з сучасними ПК, так як є мікроконтролери, що явно потужніші за старі спектруми та, навіть за і486 :-)).  І призначений для вирішення задач у всіляких "вбудованих" системах.