Как сделать новый проект avr-gcc в AVR Studio 4 |
Написал microsin | |
01.11.2008 | |
Здесь описан процесс по шагам для создания проекта на основе свободного компилятора AVR GCC. 1. Запускаем AVR Studio, в запустившемся стартовом визарде жмем большую кнопу New Project, выбираем AVR GCC, впечатываем имя проекта (Project name:, выбираем его так, чтобы было понятно, что за проект), выбираем папку для размещения проекта (Location:), жмем кнопку Next>> 2. Выбираем платформу для отладки (Debug platform:), тип микроконтроллера (Device:), жмем кнопку Finish.
3. Вводим текст программы в главный C-файл проекта (его имя совпадает с названием, которое Вы дали проекту), что-то типа: 4. Если Вы хотите, чтобы автоматически подхватывались операторы include "имя_файла.h", то вы должны указать все папки, где нужно искать эти include-файлы, в настройках проекта - меню Project -> Configuration Options -> жмем кнопку слева "Include Directories", жмем New (Insert), указываем путь к папке (можно воспользоваться кнопкой браузинга ...). 5. Файлы проекта, которые вызываются операторами include, должны быть вручную добавлены в Header Files среды разработки, иначе она их "не видит" - файлы эти компилируются, но изменения, сделанные тесктовым резактором в них, не учитываются, пока включаемые файлы не сохранить. 6. Если во включаемых файлах объявляются функции, определенные в других C-файлах, то эти C-файлы нужно добавить в Source Files, чтобы они тоже компилировались. 7. Тип процессора (например, ATMega16) указывается в меню Project -> Configuration Options -> кнопка General -> выпадающий список Device: atmega16. При этом в зависмости от выбора компилятору передается информация от типе процессора с помощью опции -mmcu=тип_процесссора (в нашем примере -mmcu=atmega16). Символьная информация о именах регистров (которая своя для каждого типа процессора) обеспечивается файлом-селектором avr/io.h, который исходя из типа процессора загружает нужный include-файл. В нашем примере загрузится файл avr/iom16.h, причем этот файл напрямую (без avr/io.h) включать нельзя.
8. Ключевого слова extern в gcc нет, вместо него применяют простое предварительное объявление внешней функции:
9. Генерация задержек. Для корректной работы подпрограмм задержки должна быть выставлена тактовая частота микроконтроллера в свойствах проекта (Project -> Configuration Options -> кнопка General -> указываем в окне ввода Frequency: частоту в герцах). При этом к компилятору передается опция -DF_CPU=тактовая_в_герцахUL, она создает макроопределение F_CPU, использующееся при генерации задержки.
10. Использование inline-инструкций ассемблера:
11. Работа с таймером WatchDog (WDT):
12. Проверка бит (на примере бита ADSC регистра ADCSRA):
В свежих версиях gcc (WINAVR) функция bit_is_clear может отсутствовать. Используйте вместо неё следующую конструкцию: Вызов функции bit_is_set(ADCSRA, ADSC) может быть заменена на (ADCSRA & (1<<ADSC)). См. также статью "AVR GCC - операции с битами inp, outp, sbi, cbi, bit_is_set и bit_is_clear".
13. Встроена поддержка битовых констант, что довольно удобно: |
|
Последнее обновление ( 23.03.2010 ) |