Записи с тегом «AVR-GCC»

Перенос make-файлов (Makefile) с WinAVR на AVR Toolchain

11.12.2011 17:48 / Артём Волк / 353 просмотра / ...

Проект WinAVR больше не поддерживается автором, вместо него Atmel предлагает AVR Toolchain (в виде отдельного пакета и в составе AVR Studio 5).

Возникла необходимость пересобрать старый проект, make-файл которого основывался на шаблоне из комплекта WinAVR, новым тулчейном. Для этого понадобились небольшие правки make-файла. Большинство из них необходимы потому, что в WinAVR был эмулятор оболочки (sh), а в AVR Toolchain его нет, поэтому команды оболочки заменены на консольные команды Windows. Изменения в формате diff-файла ниже (автоматически накатить patch, скорее всего не получится, номера строк могут быть разными).

читать дальше...

Массив массивов в PROGMEM для микроконтроллеров AVR

11.06.2011 11:39 / Артём Волк / 803 просмотра / ...

Когда совсем запутался с массивами массивов, хранимых во флеш-памяти микроконтроллера AVR решил набросать такую демку и проверить всё в симуляторе с отладчиком. Вроде бы разобрался, возможно, кому-нибудь ещё пригодится.

Особенно понравился доступ к массивам не так: a[2], а вот так: 2[a] (это работает для любых массивов в C) :)

смотреть код...

Пример работы с protothreads на GCC-AVR

01.05.2011 22:10 / Артём Волк / 1039 просмотров / ...

Вдохновившись описанием Protothreads у BSVi, набросал небольшой пример их использования в виде программы, мигающей двумя светодиодами с разной частотой. Для пущей важности был использован system tick timer и супер-макросы для работы с GPIO.

Интересно, правильно ли я понял идею протопотоков? :)

посмотреть код...

System tick timer для ATmega8

01.04.2011 20:59 / Артём Волк / 1048 просмотров / ...

Для одного проекта на ATmega8A понадобилась реализация системного таймера, отмеряющего время в миллисекундах. Один из вариантов был найден в исходниках библиотек Arduino, второй у DI HALT'a. В обоих случаях используется самый простой 8-битный TIMER0, поэтому два других, более продвинутых таймера остаются свободными, например, для ШИМа. Значения посчитаны для тактовой частоты 8МГц.

читать дальше...

Макросы на C для работы с GPIO микроконтроллеров AVR

20.02.2011 21:05 / Артём Волк / 1533 просмотра / ...

Работа с универсальными портами ввода-вывода микроконтроллера — одна из основных задач в их программировании. В комментариях к записи в блоге BSVi, посвящённой удобной работе с GPIO на языке C пользователь ReAl подсказал, что удобные макросы для AVR-GCC включены в порт операционной системы scmRTOS для архитектуры AVR. Для того, чтобы добраться до заветного файла пришлось скачивать исходники этой ОС, поэтому продублирую нужный файл здесь с сохранением копирайтов.

макросы с примерами...