Принцип роботи з мікроконтролерами atmel (avr), народне програмування

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

Принцип роботи з мікроконтролерами atmel (avr), народне програмування
atmega8 в DIP - корпусі

І це дуже важливо зрозуміти для початку вивчення мікроконтролерів.

Список периферійних пристроїв контролера дуже великий.

  • універсальні цифрові порти - мають настроюється режим роботи як на введення, так і виведення;
  • інші інтерфейси введення-виведення, такі як UART, USB, IEEE 1394, Ethernet;
  • аналого-цифрові і цифро-аналогові перетворювачі;
  • компаратори;
  • широтно-імпульсні модулятори;
  • таймери;
  • масиви вбудованої флеш-пам'яті;
  • вбудований тактовий генератор і / wp-admin / post.php? post = 119action = edit сторожовий таймер.
Є і більш екзотичні пристрої - радіочатотние передавачі, драйвери різних пристроїв і т.д.

У нотатках розглянемо принцип роботи з мікроконтролерами Atmel (Avr)

Для початку достатньо розібратися з універсальними цифровими портами.

Кожен контролер від Atmel має порти, з назвами PORTA, PORTB. в залежності від типу мікроконтролера. Порти не обов'язково починаються з PORTA - наприклад, в DIP Atmega8 його немає. Залежно від типу контролера, порти мають різну розрядність (8, 16, 32 і т.д. біт). Розрядність порту може фігурувати в назві контролера. Наприклад, той же Atmega8, Atmega16, Atmega32. А може і не фігурувати (Attiny2313 як варіант - але він теж 8-бітний). Сподіваюся, інтуїтивно зрозуміло, що розрядність порту визначає, скільки біт інформації одночасно передається - а, значить, скільки ніжок має порт.

Розглянемо роботу з мікро контролером на мові C.

Для початку треба налаштувати порт на введення або на висновок. Це можна зробити за допомогою регістра DDRx, де х - порт (A, B, C і т.д.) 1 - порт налаштований на вихід, 0 - на введення.

Нумерація ніжок порту:

Принцип роботи з мікроконтролерами atmel (avr), народне програмування

Наприклад, настроєм перший біт (1 ніжку) порту А на висновок:

0b на початку означає, що число представлених в двійковій січтеме обчислення. Ви можете представляти числа у будь-якій зручній для вас формі. Але прийнято використовувати 2 форми - двійкову (бінарну) і шестнадцатиричную. У двійковій системі простіше розуміти (0 - низький логічний рівень на ніжці, 1 - високий), в шестнадцатиричной більш компактна запис. Що використовувати - вирішувати вам.

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

Тепер можемо передати значення на порт (на ту ж 1 ніжку):

Ну і. Фактично все для ознайомлення! Цих елементарних знань плюс трохи фантазії плюс трохи базового досвіду в програмуванні досить для того, щоб, наприклад, створити якусь світлодіодну мигалку (наприклад, як тут: Подарунок дівчині своїми руками (на attiny2313)).

Наприклад, під gcc-avr просто програма має наступний вигляд:

І так ми можемо запалити / спалити светодіодик =)

Схожі статті