Страница 4 - Краткий учебный курс - Самоучитель - AVR - быстрый старт с нуля.
ПРОГРАММА для AVR ПО для микроконтроллеров AVR
Компиляторы Си и
Симуляторы
для микроконтроллеров AVR
Страницы курса : заглавная 1 2 3 4 5 6 7 8 9 Задачи-упражнения курса по AVR - там Микроконтроллыры AVR - параметрическая таблица
Это уже 4-я
страница краткого курса ! 5) какие напряжения на своих выводах может создавать МК AVR 6) с чего нужно начать разработку эл. устройства 7) какая документация по МК особенно полезна и необходима 8) где найти книги и дополнительные материалы
Иначе понимание дальнейшего материала курса может оказаться затруднительным.
ВСЕ АКТУАЛЬНЫЕ !
Итак ... -
вы определились с тем какое
электронное - понимаете что оно должно делать, -
нарисовали схему устройства физически способную
выполнить вашу задумку !
-
например слепили из кусочков взятых в ДШ, АпНоутах,
опираясь на аналогичные
проекты других электронщиков найденные
в интернете и по
советам других радио Губителей. Пора создавать программу которая, будучи загруженной (зашитой, прожженной) в МК, будет изменять физическое состояние его внутренностей и ножек делая записи в регистры МК и узнавать о физическом состоянии содержимого МК читая его регистры с целью выполнения задуманного вами.
Регистры... регистры... регистры...
и у вас все получится... Особенно
просто и правильно вы этого добьетесь с помощью
Программу
для МК удобно создавать в специальных программах
- называются
Компилятор
позволяет написать программу для МК на универсальном языке программирования
- одинаковом Компилятор
по вашей команде проверяет отсутствие ошибок в набранном исходнике и, если
ошибок нет, преобразует исходник (компилирует
его) в
специальный файл обычно с расширением .hex
- его называют "прошивка".
Очень
трудно написать программу поэтому Важнейшим этапом разработки электронного устройства является отладка программы МК. (программа МК называется - firmware).
Для
отладки вы : И
так до победного конца - т.е. до тех
пор пока устройство заработает так как вам нужно.
Не всегда
допустимо включить устройство не зная
наверняка правильно ли Иногда
требуется проверить работу МК не имея
его и В этих
случаях я рекомендую использовать
Симулятор приблизительно моделирует на ПК работу "прошитого" вашей программой МК и его обвязки - т.е. электронных компонентов окружающих МК по схеме устройства. Кроме того симуляторы позволяют вам: -
останавливать программу когда нужно -
в ручную и автоматически - делать еще много полезного !
Теперь подробнее ...
Компиляторы Си для AVR
Я сам
начинал изучать и применять МК сразу
Считаю, что Для начинающих наиболее удобен в работе компилятор Си для AVR CodeVisionAVR ( или CVAVR) Если вы еще не установили эту программу то скачайте на заглавной странице курса. Именно для начинающих ! - Компилятор CVAVR содержит очень понятный и очень мощный генератор начального кода программы по вашим потребностям в конфигурации AVR и его периферии - встроеных электронных модулей МК - называется он : CodeWizardAVR
Затем мастер ("визад") создаст файл проекта .prj и файл исходного текста программы на языке Си с расширением .c - в нем уже будет содержаться код на Си конфигурирующий МК по сделанному вами "заказу". Вам нужно будет добавить лишь код реализующий нужный вам алгоритм работы устройства. Используйте этот мастер и далее по ходу работы программы - точно так же как и в начале, но не генерируйте новые файлы а просто откройте меню "файлы - просмотр" и посмотрите нужный кусок программы на Си, возьмите что вам нужно и вставьте в вашу программу.
Обязательно читайте Help к компилятору - по сути это одновременно и учебник по Си для AVR и именно в нужном вам объеме ! Это относится и к другим используемым вами программам. Читайте инструкцию и помощь !
Смотрите пробуйте изучайте ПРИМЕРЫ к
программе !
Компилятор CodeVisionAVR имеет и встроенный программный модуль для прошивки МК и конфигурирования фьюзов AVR fuse прямо в схеме устройства.
AN
AVR033 "Getting Started with the CodeVisionAVR C Compiler"
Для
полного цикла разработки устройства
достаточно Однако, я рекомендую вам, скачать
Работая
в паре, два мастера конфигурирования МК -
Atmel
- подсказывает как начать работать и с
этим AN
AVR031 "Getting Started with ImageCraft C for AVR"
Существуют и другие компиляторы.
Создает очень правильный и компактный код! Есть версия и под Linux. Есть вариант WinAVR в USB-флэшке. Этот
компилятор хорошо интегрируется с
симулятором VMLAB Вы ставите на ПК WinAVR и забываете о нем! Вся работа
идет из симулятора VMLAB - в нем C:\VMLAB\WinAVRdemo
Работать с самим WinAVR тоже очень просто. Компиляция проекта в
WinAVR -
откройте демо проект C:\WinAVR\examples\demo\demo.c
demo.hex
- файл для прошивки
в микроконтроллер AVR
о настройке WinAVR читайте в низу этой страницы.
AtmanAVR
C/C++ Compiler AVRGCC -
он как и WinAVR основан
Самый лучший и самый дорогой ! IAR - требует несколько замысловатой настройки, не имеет множества примеров в инсталляции и не имеет генератора начального кода. Хотя компания IAR явно считает генератор полезным, так как продает его в виде отдельного программного продукта. Компилятор
IAR генерирует самый Demo
версия на 30 дней - полностью рабочая
без ограничений, нет только
не нужных начинающему исходников включенных в пакет библиотек.
Вы можете скачать DEMO с сайта производителя - примерно
105 Мб.
Скачивать большие файлы рекомендую бесплатной программой ReGet - эта качалка позволяет докачивать файлы после обрыв соединения, в несколько приемов.
Средства
отладки программ
Симуляторы для AVR и электроники
Без риска спалить что либо ! Вы можете проверить работу не только программы загруженной в модель МК но и работу модели целого электронного устройства! Записать на диск результат его работы для последующего анализа, поиска недочетов. В задачах-упражнениях курса я использую
Бесплатный симулятор-эмулятор Несмотря
на небольшой размер (около 4.2 Мб),
программа является самостоятельным
средством разработки ПО на ассемблере
для МК сразу двух производителей: ATMEL.com и
ST.com !!!
Я
сделал упражнение -
задачу 3 в
которой очень
подробно рассмотрел симуляцию программы на
VMLAB с картинками.
Есть пример
работы VMLAB с CodeVisionAVR ! C:\VMLAB\AVR_demo\codevisi.prj и по-симулируйте ! При симуляции вы увидите движение по исходному тексту программы на Си, и можете расставлять точки останова программы, наблюдать за изменениями значений в регистрах МК, посмотреть осциллограммы сигналов на ножках МК и многое другое ...
Вся
работа от написания кода на Си до
отладки выполняется C:\VMLAB\WinAVRdemo\файлы.prj захотите попробуете ...
Скачав рекомендованные
программы -
установите CVAVR ICCv7avr VMLAB тогда рабочие файлы будут находятся по тем же адресам что и в задачах-примерах. Значит
будет проще помочь, ответить на ваши
вопросы.
Не
обязательный для курса Пакет
для разработки электронных устройств PROTEUS <<< скачать там же. Действительно
супер программа ! Во первых PROTEUS может симулировать несколько МК в одном устройстве, причем не только AVR но и PIC и Motorola и 8051 и даже ARM7 вперемешку ! Во вторых в поставку PROTEUS входит очень много моделей компонентов. В третьих
вы можете симулировать любые электронные
устройства и не
Вам нужно проверить
какую то идею Вы можете не паять, не искать детали, запоминающий осциллограф и другие измерительные приборы, а Просто
"соберите" вашу схему в PROTEUS и
посмотрите как PROTEUS - симулирует очень реалистично ! И
главное наглядно видна работа
устройства, В четвертых PROTEUS
- по сути справочник электронных компонентов Для поиска компонента вам достаточно ввести в окно несколько символов из его марки или описания и затем выбрать из предложенных категорий.
в
пакет включены отличные примерно 80 устройств готовых к симуляции. Это : - дата
логер
на жесткий диск (есть модель IDE HDD ! ) - радиочастотные схемы, трансформаторы, линии передачи. - конечно кнопки, индикаторы, светодиоды, связь с ПК, разные датчики, память - конечно есть виртуальные приборы. - отладка интерфейсов UART i2c TWI SPI
Читайте - Краткий учебный Курс Самоучитель PROTEUS Симулятор электронных устройств ПРОТЕУС, поддерживает микроконтроллеры AVR , 8051, PIC10, PIC16, PIC18, ARM7, Motorola MC68HC11 Полная система проектирования ! От идеи до
результатов работы устройства Быстрый старт, самые первые шаги ...
А
если нет модели нужного
Вам необходимы две программы - CVAVR
и VMLAB
настройки WinAVR и AVRstudio |
|
|
ПОЧТОЙ по России ! Программаторы USB AVR PIC ARM 8051, прошивание микроконтроллеров AVR PIC LPC ARM 8051 на заказ, изготовление "любительских" печатных плат по ЛУТ технологии, сборка электронных наборов - Мастер Кит и других, закупка для вас радио деталей электронных компонентов в "Тэрраэлектроника" + добавлю резисторы и конденсаторы + отправка почтой, изготовление электронных устройств для вас на заказ не дорого по вашим схемам или разработаю сам, другие услуги для радио электронщиков любителей, для мастеровых людей и хоббийщиков RC моделистов и для строящих Роботов, компоненты для самодельных станков с ЧПУ.
На
сайте - "МК ПОЧТОЙ
народ РУ"
Вы можете приобрести уникальный
DVD
Скачайте содержание этого DVD и ознакомьтесь.
Цены могут
уменьшаться при комбинации ЛЮБЫХ услуг
например
получение различных компонентов в
"Тэрраэлектроника" + прошивка AVR PIC из этой
закупки естественно будет стоить дешевле.
|
ключевые слова:
программирование микроконтроллеров,
как написать программу для
микроконтроллера, обучение
программированию микроконтроллеров,
микроконтроллеры atmega128, как
запрограммировать микроконтроллер,
как прошить микроконтроллер, отладка
программы для AVR, моделирование работы
электронных схем, электронные проекты,
хобби, язык си для микроконтроллеров,
язык программирования си Основы
программирования (кнопочки, светодиоды)
Работа с портами. Прерывания и таймеры.
Основы ШИМ, программная и аппаратная
реализация. Сервоприводы. Работа с АЦП
Настройка и программирование UART Работа
с I2C Связь (UART, I2C, SPI) AT76C712 , AT76C713 , AT90CAN128 , AT90CAN128 Automotive , AT90CAN32 , AT90CAN64 , AT90PWM2 , AT90PWM3 , AT90S1200 , AT90S2313 , AT90S2323 , AT90S2343 , AT90S4433 , AT90S8515 , AT90S8535 , ATmega128 , ATmega1280 , ATmega1281 , ATmega16 , ATmega161 , ATmega162 , ATmega163 , ATmega164 , ATmega165 , ATmega168 , ATmega168 Automotive , ATmega169 , ATmega2560 , ATmega2561 , ATmega32 , ATmega323 , ATmega324 , ATmega325 , ATmega3250 , ATmega329 , ATmega3290 , ATmega406 , ATmega48 , ATmega48 Automotive , ATmega64 , ATmega640 , ATmega644 , ATmega645 , ATmega6450 , ATmega649 , ATmega6490 , ATmega8 , ATmega8515 , ATmega8535 , ATmega88 , ATmega88 Automotive , ATtiny11 , ATtiny12 , ATtiny13 , ATtiny15L , ATtiny2313 , ATtiny25 , ATtiny26 , ATtiny28L , ATtiny45 , ATtiny85 |
WinAVR
- первые шаги. |
WinAVR -
бесплатный компилятор для
микро контроллеров AVR, построенный на базе GCC компилятора
Си Си++ с открытым исходным кодом.
СКАЧАЙТЕ СВЕЖУЮ ВЕРСИЮ !!! Англоязычная документация и примеры
для WinAVR и GCC там
http://www.avrfreaks.net/AVRGCC 1) WinAVR установите в
папку C:\WinAVR\ и
перезапустите компьютер. 2) Создайте папку для тестового проекта - например C:\WinAVR\_test
3)
Запустите редактор из группы меню
программ WinAVR -
Programmers Notepad [WinAVR] - появится пустое
окно с название new - в нём мы будем
набирать исходный текст программы. Установите
удобный для вас размер окна и можно закрыть окно Скриптов.
Сохраните файл как :
/************************************************** Краткий курс AVR - начинающим с нуля. http://proavr.narod.ru/04.htm Эта программа мигает светодиодом который подключен к ножке PB0 порта PORTB ATmega8 и через резистор 470-750 Ом к +5 в питания микроконтроллера. **************************************************/ // Указать на какой частоте работает МК в Гц #define F_CPU 8000000UL // Частота 8 MHz #include <avr/io.h> // библиотека I/O #include <util/delay.h> // библиотеки пауз int main(void) { DDRB |= _BV(PB0); // назначить ножку PB0 ВЫХОДОМ while(1) { // Бесконечный цикл PORTB &= ~_BV(PB0); // "0" на PB0 - светодиод включен _delay_us(200000); // Пауза 200 000 МикроСек. PORTB |= _BV(PB0); // "1" на PB0 - светодиод вЫкл. _delay_ms(600); // Пауза 600 милиСек. } // скобка для while(1) return 0; } // скобка для main(void) Cохраните изменения. Пауза в примере 200 000 не обычна, я
применил ее просто,
Документация по функциям WinAVR в руководстве Папка WinAVR\doc\avr-libc\avr-libc-user-manual.pdf
Примеры WinAVR советую
изучить
5) Создать Makefile (мэйк-файл) - в нем определяются параметры компиляции файлов проекта и делаются настройки. Процесс создания Makefile автоматизирован утилитой MFile [WinAVR] - запустите её. Сохраните "File" -> "Save as" Makefile в папке проекта C:\WinAVR\_test\
а) Выберите нужный МК - у нас
ATmega8
Примечание Если щелкнуть по "Enable Editing of Makefile" - то текст мэйк файла можно будет редактировать и без меню.
б)
Щелкните "Main file name" и укажите файл с исходным текстом программы
в) Теперь проверьте формат файла с информацией для отладки. файл .COFF нужен для отладки программы в VMLAB Файл .ELF нужен для отладки программы в PROTEUS и AVR Studio
Замечания: - Частоту тактирования
AVR мы укажем в исходном тексте программы, но её
можно указать - Уровень оптимизации в мэйкфайле по-умолчанию средний S - при необходимости его можно изменить.
г) Сохраните "File" -> "Save" отредактированный Makefile
Результат компиляции выводится в окно Output
138 байт - это сколько израсходовано памяти программ ATmega8 Главное ! чтобы в результате компиляции не было сообщения об ошибках - Error . Если ошибки есть то вы что-то сделали не правильно - нужно их устранить. Папка нашего проекта наполнилась результатами компиляции
test.lss - содержит листинг программы на ассемблере сопоставленный со строками программы на Си. test.hex - это программа для прошивки в AVR. test.eep - для прошивки в EEPROM AVR. Мы не использовали в программе eeprom , но файл все равно создается. Важно - он в формате .hex и если вы хотите симулировать в PROTEUS то нужно конвертировать его в формат .bin
7) Проверка программы в PROTEUS Запустите симулятор ПРОТЕУС , создайте новый проект и поместите на схему микроконтроллер ATmega8, щелкните по нему и в свойствах МК укажите файл test.elf ( выберите из списка test.hex и затем измените расширение на .elf ) и частоту 8MHz , бит делителя частоты на 8 установите "не запрограммирован", затем "ОК". Запустите симуляцию нажатием кнопки "пауза". Укажите исходник test.c программы - теперь можно поставить точки останова на строках изменения уровня на PB0 и оценить точность отсчета пауз при симуляции нажимая кнопку "пуск симуляции". Вот скриншот составленный из 3 остановок программы:
Всё !
WinAVR работает. Скачайте проект - и попробуйте сами !
8) Проверка программы в AVR Studio Запустите AVR Studio и закройте мастер проекта (обычно он запускается сам), откройте файл test.elf - студия предложит сохранить файл ее проекта, сохраните. Выберите "дебаг платформ" - в чем отлаживать программу - AVR simulator и ATmega8 нажмите Finish. В тексте программы установите точки останова на строчках изменения PB0 - щелкните на строчке правой кнопкой и выберите "тагл брейкпоинт". Нажмите Alt+O и установите частоту такта 8 MHz затем "ОК". Теперь нажмите "Стоп" и "Старт" симуляции, смотрите время остановки на точках останова. Вот скриншот симуляции собранный из трех на точках останова :
По этим данным можно подкорректировать паузы если нужна большая точность. Главное видно, что паузы отрабатываются достаточно правильно.
|
|
Отладка программы
CVAVR CodeVisionAVR в AVR Studio
1. Инсталлируете CodeVisionAVR и AVR Studio.
2. Запускаете CodeVisionAVR. Выбираете пункт меню "Settings -> Debugger".
3. Если путь указан правильно, то, нажав на кнопочку с изображением
4. В открывшемся окне AVR Studio, выбираете пункт меню "File ->Open File...".
Теперь можно запустить
выполнение вашей програмы, можно
Домашняя страница микроконтроллеров AVR
ВСЕ АКТУАЛЬНЫЕ AVR ! Микроконтроллыры AVR - параметрическая таблица
|