Записи с тегом «WinAVR»

Перенос 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, скорее всего не получится, номера строк могут быть разными).

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

Пример работы с 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. Для того, чтобы добраться до заветного файла пришлось скачивать исходники этой ОС, поэтому продублирую нужный файл здесь с сохранением копирайтов.

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

Минимальный клон Arduino на ATmega8A с модифицированным bootloader'ом

09.01.2011 16:53 / Артём Волк / 798 просмотров / ...

Snippet отсюда опубликован в Arduino-блоге Ильи Данилова. Его статьи мне очень сильно помогли в самом начале освоения Arduino (никто не говорит, что оно завершено :)), эта заметка — попытка внести свой вклад и отблагодарить его за труды.

Использование NetBeans с WinAVR

13.12.2010 23:26 / Артём Волк / 1005 просмотров / ...

Для PHP-проектов с недавних пор использую NetBeans, поэтому для проектов на C под WinAVR возникла идея использовать эту же IDE. Оказалось, что для программирования для AVR-платформы NetBeans мало кто использует, но после небольшой доработки напильником почти всё получилось :).

что и где пилить...

Использование Arduino-платы с WinAVR

25.11.2010 23:37 / Артём Волк / 1592 просмотра / ...

Обновлено 13.12.2010: Добавлен архив с исходниками

IDE проекта Arduino использует для компиляции программ WinAVR, поэтому для того, чтобы перейти на программирование с использованием «чистого» AVR-GCC на удобной аппаратной платформе Arduino нужно немного.

В качестве примера будет использован аналог скетча-примера Blink. Для компиляции и прошивки программы в контроллер понадобится:

  • Установленная копия WinAVR
  • Любая Arduino-совместимая плата или отдельный контроллер с Arduino-загрузчиком
  • Два файла: main.c (с основным кодом программы) и Makefile (необходим для сборки программы)

Параметры ниже подходят для платы Arduino Duemilanove с контроллером ATmega328P, для других их нужно незначительно изменить.

Преимущества такого подхода:

  • Можно использовать как Arduino IDE так и любые другие средства разработки
  • Удобные функции Arduino-плат (загрузчик, автоматический сброс перед загрузкой прошивки) продолжают работать
  • Этот способ можно использовать и для купленных отдельно чипов, предварительно прошив в них bootloader (например, с помощью ArduinoISP).

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