Pull to refresh

Пишем программы для микроконтроллеров AVR в среде Code::Blocks 10.5

Reading time 2 min
Views 51K
Привет, Хабр!

В этом небольшом топике будет показано как использовать популярную IDE Code::Blocks 10.5 для написания программ для микроконтроллеров семейства AVR фирмы ATMEL.





И так, начинается все со скачивания свободного GCC — компилятора C для AVR, который под Windows соответственно называется WinAVR.

Сейчас самой новой версией является версия WinAVR-20100110.
Этот файл скачиваем с SourceForge.

Установка WinAVR



Пакет просто устанавливается куда удобно, но, естественно, русских букв не должно быть в пути. После установки, путь к компилятору нужно добавить в PATH, чтобы все программы знали, что мы теперь гордые обладатели WinAVR.
На этом все.

Code::Blocks



Code::Blocks установлена,
Запускаем, создаем новый проект, выбираем AVR Project.



Как видно, здесь много целевых платформ, и это является положительным качеством Code::Blocks.
Выбираем тип процессора, который нас интересует, устанавливаем частоту тактирования,
отмечаем галочками типы файлов, которые нам нужны для отладки.



Пишем простую программу



Красиво мигаем светодиодами, подключенными к PORTD.


#include <avr/io.h>
#include <avr/delay.h>
int main (void)
{
int i=0;
// set PORTD for output
DDRD = 0xFF;

while(1){
for(i = 1; i <= 128; i = i*2)
{
PORTD = i;
_delay_loop_2(30000);
}

for(i = 128; i > 1; i -= i/2)
{ PORTD = i;
_delay_loop_2(30000);
}
}
return 1;
}




нажимаем билд — без ошибок, 2 предупреждения.

В рабочей директории проекта в папке BIN находим hex-файл, это и есть программа для нашего микроконтроллера, которая может быть загружена в него и запущена.

Для работы с компилятором из консоли нужен специальный makefile файл, который содержит информацию о типе процессора, тактовой частоте и прочих важных вещах.

При работе с Code::Blocks необходимость заполнения вручную файла makefile отпадает. Потому как все можно настроить в окне настроек компиляции.
Здесь же редактируется оптимизация и прочее прочее.



Code::Blocks очень гибкая среда, которая подойдет многим.
Подошла и мне, теперь я постоянно пишу в ней код для AVR, это удобно.

Надеюсь информация была полезной.
Tags:
Hubs:
+28
Comments 37
Comments Comments 37

Articles