Программируем первый AVR контроллер [ AtMega8 ]

Для всего нижеизложенного нам понадобится:

  • CodeVisionAvr — для компиляции программы контролера
  • Proteus — для симуляции

Если у вас нет этих программ лучше скачайте именно их. В других всё может кардинально отличатся.
Немного для понимания процесса.
Тут вы не найдёте теоретических сведений о контроллерах и правильном их программировании. Это всего навсего хелловорд в мире контроллеров.
Мы запрограммируем контроллер, который будет мигать диодом по заданной программе.

Схема:

Как вы видите программировать будем контроллер AtMega8.
Откройте CodeVision и создайте новый проект.
Добавьте к проекту исходный файл Си.

Добавьте в него заголовочные файлы:

#include <mega8.h> //Включаем библиотеку для работы с микроконтроллером ATMega8
#include <delay.h> //Включаем библиотеку для организации задержек

Теперь будем заполнять основную функцию:

void main(void){       
     /// код здесь
}

Первые строки программы.
В AtMega8 есть порты B,C и D. Работа с ними аналогична.
Что такое порт? Это нечто вроде коробки выходов. Мы можем программно задавать значения на выходах порта.

int i;  // переменная для отсчёта миганий
PORTD=0x00; //Выставляем все выходы порта D в 0
DDRD=0xFF;  //Делаем порт D выходом

Теперь собственно действия. Будем мигать светодиодом 5 раз с задержкой 100мс, после чего ожидаем секунду (1000мс) и повторяем процесс.

while (1) {
    for(i=0;i<5;i++) {
        PORTD.0 = 1;  // включаем порт 0
        delay_ms(100);  // ждём
        PORTD.0 = 0;  // выключаем
        delay_ms(100);  /// опять ждём
    }   

    delay_ms(1000);  // ждём секунду
};

Теперь практически всё готово. Идём в меню Project — Build
Ошибок быть не должно.
В папке с проектом теперь появится hex файл. Он то нам и нужен.
Откройте ISIS, соберите схему как на рисунке выше. После чего кликните дважды по контроллеру. Появится окно:

В нём необходимо указать «Program file» — путь к hex.
Теперь всё готово. Можно смело жать «плей» и наслаждаться симуляцией.

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий

  1. Лена

    Хочу купить

    Ответить