Краткий курс - Самоучитель - AVR - быстрый старт с нуля

 

Страница 4 - Краткий учебный курс - Самоучитель - AVR - быстрый старт с нуля.

 

ПРОГРАММА  для  AVR

ПО для микроконтроллеров AVR

Компиляторы  Си и     Симуляторы для микроконтроллеров AVR
ATmega ATtiny
 

 

 



Книги и учебники по электронике и микроконтроллерам

 

Страницы курса :   заглавная    1   2   3   4   5   6   7   8   9

Задачи-упражнения курса по AVR  -   там

Микроконтроллыры AVR - параметрическая таблица


 
Скачать весь курс по AVR одним архивом на заглавной странице курса.

 

Это уже 4-я страница краткого курса !

Вы уже должны представлять себе 
 

1) что такое МК AVR и в чем его особенности 

2) как МК взаимодействует с электроникой подключенной к нему 

3) как МК преобразует напряжения на его ножках  в  "1" или "0"

4) что является посредником в общении программы с МК

5) какие напряжения на своих выводах может создавать МК  AVR

6) с чего нужно начать разработку эл. устройства

7) какая документация по МК особенно полезна и необходима

8) где найти книги и дополнительные материалы


Если вы читаете курс не первый раз и все равно не можете ответить на эти вопросы - наверно вам нужно остановится и попробовать найти ответы в прочитанной части курса либо в книгах.   

Иначе понимание дальнейшего материала курса может оказаться затруднительным. 

 

Список микроконтроллеров AVR

ВСЕ  АКТУАЛЬНЫЕ !
 

Итак ...

- вы определились с тем какое электронное устройство творите, 

- понимаете что оно должно делать, 

- нарисовали схему устройства физически способную выполнить вашу задумку ! - например слепили из кусочков взятых в ДШ, АпНоутах, опираясь на аналогичные проекты других электронщиков найденные в интернете и по советам других радио Губителей. 

Пора создавать программу которая, будучи загруженной (зашитой, прожженной) в МК, будет изменять физическое состояние его внутренностей и ножек делая записи в регистры МК и узнавать о физическом состоянии содержимого МК читая его регистры с целью выполнения задуманного вами.

 

Регистры...  регистры...  регистры... 


Короче - 


хотите что-то включить, выключить, поменять в МК - найдите
в ДШ те регистры и биты которые за это отвечают 
и выясните что именно нужно записать в них ! 

и у вас все получится...

Особенно просто и правильно вы этого добьетесь с помощью мастера интерактивного создания кода программы.

Про мастерконфигурации МК написано ниже.

Программу для МК удобно создавать в специальных программах - называются 
они компиляторы. 


Если кроме компилятора в пакете есть отладчик-симулятор и/или программатор то это уже IDE (интегрированная среда разработки). 

Компилятор позволяет написать программу для МК на универсальном языке программирования - одинаковом
и для ПК и для различных МК
(кстати для МК требуется всего 3-5%
всех возможностей языка программирования). 

Текст программы набранный вами (или другими добрыми людьми) в компиляторе называют исходным кодом (или исходником или сырцом - англ: source code

Компилятор по вашей команде проверяет отсутствие ошибок в набранном исходнике и, если ошибок нет, преобразует исходник (компилирует его) в специальный файл обычно с расширением .hex  - его называют  "прошивка". 

Прошивку с помощью программатора  (для AVR это например 5 проводков с параллельного порта ПК) помещают во FLASH память программ МК и при
необходимости частично в его EEPROM.

 

Реклама недорогих радиодеталей почтой:

 

Очень трудно написать программу 
сразу правильно и без ошибок

поэтому 

Важнейшим этапом разработки электронного устройства является отладка программы МК.  

(программа МК называется - firmware).

 

Для отладки вы : 

- включаете ваше устройство с прошитым МК (либо симулятор МК)
- находите отклонения от требуемого алгоритма вызванные ошибками проги, 
- выявляете хитрыми способами эти ошибки, 
- вносите соответствующие изменения в исходный текст программы  
- опять компилируете  
- прошиваете новый .hex в МК и опять на верхний пункт этого списка

И так до победного конца - т.е. до тех пор 
 

пока устройство заработает так как вам нужно.

 

Не всегда допустимо включить устройство не зная наверняка правильно ли
работает программа МК - в некоторых случаях могут произойти серьезные и дорогостоящие повреждения обвязки МК и другой аппаратуры. 

Иногда требуется проверить работу МК не имея его и 
вообще какой либо реально спаянной схемы и самого МК. 

В этих случаях я рекомендую использовать 
специальные программы - Симуляторы. 

 

Симулятор приблизительно моделирует на ПК работу "прошитого" вашей программой МК и его обвязки - т.е. электронных компонентов окружающих МК по схеме устройства. 

Кроме того симуляторы позволяют вам: 

- останавливать программу когда нужно - в ручную и автоматически
- выполнять программу по шагам 
- видеть как именно происходит выполнение программы 
- наблюдать и изменять значения в регистрах МК 
- наблюдать текущие значения переменных 
- использовать виртуальные измерительные приборы с памятью 
- симулировать работу МК с обвязкой включающей различные электронные
компоненты и устройства 
- виртуально обмениваться информацией с терминалом на ПК

- делать еще много полезного !

 

 

Теперь подробнее ...

 

 

Компиляторы Си для AVR


Не пугайтесь ! я не предлагаю вам изучить еще и язык Си - мы просто будем использовать по мере необходимости несколько инструкций из него - всего несколько процентов языка. 

Я сам начинал изучать и применять МК сразу 
на Си - и очень доволен ...

 

Считаю, что 

Для начинающих наиболее удобен в работе 

компилятор Си для AVR   CodeVisionAVR  ( или CVAVR)

Если вы еще не установили эту программу то скачайте на заглавной странице курса.

Именно для начинающих ! - Компилятор CVAVR содержит очень понятный и очень мощный генератор начального кода программы по вашим потребностям в конфигурации AVR и его периферии - встроеных электронных модулей МК - называется он :

CodeWizardAVR

 

 

Вам нужно просто выбрать МК, частоту тактирования, затем открыть ярлыки тех устройств МК которые вы будете использовать и установить нужные параметры их работы. 

Затем  мастер ("визад") создаст файл проекта .prj и файл  исходного текста программы на языке Си с расширением .c - в нем уже будет содержаться код на Си конфигурирующий МК по сделанному вами "заказу". 

Вам нужно будет добавить лишь код реализующий нужный вам алгоритм работы устройства.

Используйте этот мастер и далее по ходу работы программы - точно так же как и в начале, но не генерируйте новые файлы а просто откройте меню "файлы - просмотр" и посмотрите нужный кусок программы на Си, возьмите что вам нужно и вставьте в вашу программу.

 

     
 

Подробно и с картинками работу с КодВизадом - мастером начального кода CodeVisionAVR
я описал в задаче 1

 
     

 

 

Обязательно читайте Help  к компилятору - по сути это одновременно и учебник  по Си для AVR и именно в нужном вам объеме ! 

Это относится и к другим используемым вами программам.  

Читайте инструкцию и помощь !

Смотрите пробуйте изучайте ПРИМЕРЫ к программе ! 

 

Компилятор CodeVisionAVR  имеет и встроенный программный модуль  для прошивки МК  и конфигурирования фьюзов AVR fuse прямо в схеме устройства.

 


Компания Atmel подсказывает как начать работать 
с этим компилятором Си для AVR: 

AN AVR033  "Getting Started with the CodeVisionAVR C Compiler"


Это  АпНоуто Atmel - надеюсь вы уже скачали хотя бы их список ! 
Если нет то скачайте обязательно их перечень.

Они ВСЕ нужны ВАМ !!! как справочник конкретно по AVR.

 

Для  полного цикла разработки устройства достаточно
только одного компилятора CodeVisionAVR. 

Однако, я рекомендую вам, скачать 
еще один компилятор: 

ICC AVR  от ImageСraft


Я использую и его генератор начального кода на Си - 
конфигуратор периферии AVR - в паре с CodeWizardAVR.

Работая в паре, два мастера конфигурирования МК -
идеально дополняют друг друга! 

Например конфигурация Таймеров МК по моему лучше, понятней
и наглядней сделана в мастере ICC.
 

Atmel - подсказывает как начать работать и с этим 
компилятором Си для AVR в Апликейшн Ноуте: 

AN AVR031 "Getting Started with ImageCraft C for AVR"

 

     
 

В компиляторах есть отличные 
примеры программ на Си для 
наиболее часто встречающихся 
задач на МК 

в CodeVisionAVR примеры в папке - CVAVR\Examples 

в ICC примеры находятся в папке - ICC\examples.avr

Примеры - это исходные тексты программ на Си для управления периферией МК и интерфейса (общения) с популярными внешними устройствами. 

Исходники снабжены подробными комментариями! 

Комментарии это то что написано :
- после двух косых черточек
// - в одну строку !
- либо между 
/*  и  */  -  в одну или несколько строк 

Не забывайте и вы комментировать тексты ваших программ! 

Иначе, буквально через пару месяцев, вам будет очень затруднительно понять, что делает тот или иной кусок даже ВАШЕЙ программы!

 
     

 

 

 

Существуют и другие компиляторы.


БЕСПЛАТНЫЙ и  великолепный WinAVR

Бесплатный пакет на основе компилятора GCC - о нем очень хорошие отзывы.

Создает очень правильный и компактный код!

Есть версия и под Linux. Есть вариант WinAVR в USB-флэшке.

Этот компилятор хорошо интегрируется с симулятором VMLAB
и фирменной средой разработки  Atmel - AVRstudio  

Вы ставите на ПК WinAVR и далее работаете в AVR Studio или из симулятора VMLAB. 

В нем есть пример такой интеграции, находится в папке:
C:\VMLAB\WinAVRdemo 

 

 

Работать с самим WinAVR тоже очень просто.

Компиляция проекта в WinAVR

- запустите "пуск" -> "WinAVR" -> "Programmers NotePad"

- откройте демо проект   C:\WinAVR\examples\demo\demo.c

- затем меню "Tools" и "Make All"

Проект откомпилируется и в папке C:\WinAVR\examples\demo\   появятся:

demo.hex - файл для прошивки в микроконтроллер AVR

demo.lst - это листинг на ассемблере с привязкой к Си коду программы

demo.elf - файл содержит информацию для отладки программы в симуляторе.
                          Например в PROTEUS.


Подробней

о настройке WinAVR читайте в низу этой страницы.

 

 

AtmanAVR   C/C++ Compiler AVRGCC  - он как и WinAVR основан
на GCC но имеет отладчик и
ГЛАВНОЕ для начинающего:
прекрасный мастер генератор начального кода ! 

 

 

Возможно лучший и самый дорогой !

IAR  - требует несколько замысловатой настройки, не имеет множества примеров в инсталляции и не имеет генератора начального кода. Хотя компания IAR явно считает генератор полезным, так как продает его в виде отдельного программного продукта.

Компилятор IAR генерирует самый 
быстрый и компактный код.

Demo версия на 30 дней - полностью рабочая без ограничений, нет только не нужных начинающему исходников включенных в пакет библиотек.  Вы можете скачать DEMO с сайта производителя - примерно 105 Мб.  
А некоторые не брезгуют и полный IAR стянуть
ТАМ

 

 

     
 

Примеры программ на Си подходят 
с незначительными изменениями
для 
любых компиляторов и для любых МК ! 

Так как язык Си машино не зависимый - т.е. программы мало 
зависят от того для какого процессора они написаны.

Огромное количество НУЖНЫХ исходников 
(примеры программ) для AVR на Си здесь -
AVRLib  

 
     

 

Скачивать большие файлы рекомендую бесплатной программой ReGet - эта качалка позволяет докачивать файлы после обрыв соединения, в несколько приемов. 


 

 

 

 

- записывайте возникающие вопросы ! 
    и лучше на бумагу - моторная память !

- найдите в DataSheet (ДШ) регистры и устройства МК о которых шла речь, прочитайте о  них подробней.

- если вопросы остались перечитайте снова !

- если вопросы не разрешены, ищите ответ:

1) в help и документации компилятора, симулятора, других используемых программ!

2) поиском Windows в папках и help компилятора и симулятора.

3) поиском Windows в папке где сохранен у вас курс. 

4) в моем не структурированном AVRFAQ - это сборник ответов на часто задаваемые мне по курсу вопросы и советы по применению МК от знающих людей.

 

 



 

 

 

Средства отладки программ 
и устройств содержащих МК AVR 

 

 

Симуляторы для AVR и электроники


Вы скачали компилятор Си для AVR CodeVisionAVR  (и надеюсь очень - АпНоуты !) инсталлировали его и получили  файл прошивку для МК. Естественно вы хотите узнать - будет ли прошивка, а значит ваша программа работать в МК так как вам нужно.  Для этого удобно использовать специальные программы для ПК называемые симуляторами.  Не имея МК, не покупая эл. компонентов и без пайки 

Без риска спалить что либо ! 

Вы можете проверить работу не только программы загруженной в модель МК но и работу модели целого электронного устройства! Записать на диск результат его работы для последующего анализа, поиска недочетов.

В задачах-упражнениях курса я использую 

Бесплатный симулятор-эмулятор 
для AVR   -  
VMLAB

скачайте и установите на ПК
  

Несмотря на небольшой размер (около 4.2 Мб),  программа является самостоятельным средством разработки ПО на ассемблере для МК сразу двух производителей: ATMEL.com и ST.com !!! 
В одном флаконе! 



Мультипроцессорность - это эмуляция двух МК в устройстве, у каждого своя прошивка и они работают не зависимо - это очень мощно если правильно этим воспользоваться! 

Юзер дефайн компонентс -
в общем если вам нужен какой либо электронный компонент отсутствующий в списке VMLAB, вы можете создать его сами! 
в соответствии с ДШ или по вашим потребностям - даже 
не существующий в природе!

 
Если вы считаете эту информацию полезной, пожалуйста, помогите информировать в интернете о курсе - просто щелкните по банеру. Большое спасибо !


Electronic Banner Exchange (ElBE)

 

Я сделал упражнение - задачу 3 в которой очень подробно рассмотрел симуляцию программы на VMLAB с картинками. 

Симуляция в VMLAB используется и в других задачах курса

 

     
  В поставку VMLAB включено множество примеров программ и прошивок для немедленной симуляции - эмуляции устройства с МК.

Примеры находятся в папках:  Tutorial  и  AVR_demo

Запустите их и освойтесь, поиграйте 
с симулятором на досуге ...
 
     

 

Есть пример работы VMLAB с CodeVisionAVR ! 
откройте файл проекта 

C:\VMLAB\AVR_demo\codevisi.prj

и по-симулируйте !

При симуляции вы увидите движение по исходному тексту программы на Си, и можете расставлять точки останова программы, наблюдать за изменениями значений в регистрах МК, посмотреть осциллограммы сигналов на ножках МК и многое другое ...  


Уже упоминал: пример работы VMLAB с WinAVR вы устанавливаете winavr в папку по умолчанию и больше ни когда не заглядываете в неё ! 

Вся работа от написания кода на Си до отладки выполняется 
из VMLAB - это очень удобно.  

C:\VMLAB\WinAVRdemo\файлы.prj

захотите попробуете ... 

 

 

     
 

Совет !

Скачайте мою заготовку (Шаблон, "РЫБА", темплэйт) 
для быстрого старта в совместном использовании 

компилятора CodeVisionAVR и 
симулятора VMLAB с МК ATmega16


Скриншот симуляции программы в VMLAB  
посмотрите здесь: http://proavr.narod.ru/vmlab.png

Распакуйте файлы из архива в папку:

С:\VMLAB\WORK

Теперь откройте проект cv.prj в компиляторе CodeVisionAVR.
Вы можете править текст программы (исходник) и
перекомпилировать его.

Для эмуляции работы устройства откройте 
в VMLAB проект vmlab.prj

Вы можете проверить работу программы на Си для МК ATmega16 мигающей светодиодами и посылающей сообщение через USART на монитор-терминал VMLAB.

Если добавить адаптер MK- rs232 (описан в задаче 6 курса, там же и рекомендации) то сообщения можно будет увидеть на экране ПК. 

В общем качайте ! - это нужно ВАМ !

 

Такая же по сути заготовка - но для компилятора 
ICC - это файлы к задаче 6

 
     

 

 

Благодаря энтузиасту программисту VMLAB пополняется новыми компонентами
 
  • AVR Studio Stimulus/Logger - Создание входных и захват выходных сигналов и их сохранение при симуляции в стиле AVR Studio
     
  • Verilog VCD Logger - Компонент позволяет сохранять в файл данные длительной симуляции.
     
  • WAV Analog Stimulus/Logger - Позволяет вводить в схему сигналы из звукового файла WAV и сохранять в таком же виде результат.
     
  • Break On Edge - Точки останова по изменению сигнала - очень мощно для симуляции.
     
  • Digital Signal Delay - Цифровая пауза для сигналов - позволяет сдвигать сигнал на нужное время.
     
  • COM Port Exchanger - "Квази Уно Фантазия" теперь VMLAB может работать с ваши физическим COM портом в ПК !  Свершилось.  Раньше такое только PROTEUS мог вытворять. Но PROTEUS конечно прекрасен.
     
  • LED 7-Segment Display - 7-сегментный индикатор с десятичной точкой - несколько. Очень популярные и недорогие средства индикации.
     

 


повторю :

На софт-эмуляторе симуляторе VMLAB мы будем проверять работу программы для разрабатываемого устройства.  


Файл-прошивку для МК (расширение  .hex) созданный в компиляторе будем прогонять в симуляторе МК с внешними компонентами и смотреть что работает, что нет, и как работает... 

При необходимости будем корректировать исходный текст программы 
на Си, опять компилировать, и так по кругу до достижения правильной 
работы устройства. 


Этот процесс называется - отладка программы или дебагинн - очистка от всякой нечисти - "тараканов" и "жучков"...

 

 

Скачав рекомендованные программы - установите 
их на диск С:\  в каталоги :  

CVAVR      ICCv7avr         VMLAB

тогда рабочие файлы будут находятся по тем же адресам что и в задачах-примерах. 

Значит будет проще помочь, ответить на ваши вопросы.

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

 

     
 

Хелпы во всех рекомендуемых программах качественные  и подробные!

НЕ забывайте их читать! 

Они написаны для ВАС

Как, в прочем, и этот курс ... 

 
     

 

 

 

ОБЯЗАТЕЛЬНО используйте !

Пакет для разработки электронных устройств 
от схемы до печатной платы 

PROTEUS

Действительно супер программа ! 

Очень советую !

Во первых PROTEUS может симулировать несколько МК  в одном устройстве, причем не только AVR но и PIC и Motorola и 8051 и даже ARM7 вперемешку !  

Во вторых в поставку PROTEUS входит очень много моделей компонентов. 

В третьих  вы можете симулировать любые электронные устройства и не 
содержащие МК и очень сложные и электро-механические системы - это очень полезно.

Вам нужно проверить какую то идею 
или вариант реализации чего либо ? 

Вы можете не паять, не искать детали, запоминающий осциллограф и другие измерительные приборы, а ...

Просто "соберите" вашу схему на ПК в PROTEUS и посмотрите как 
она будет работать, каковы будут её параметры.

PROTEUS - симулирует очень реалистично ! 

И главное наглядно видна работа устройства, напряжения и токи в нем.

В четвертых  

PROTEUS - по сути справочник электронных компонентов 

Когда вы просматриваете библиотеки для добавления компонента на схему - вам сразу показываются его основные свойства и корпус компонента - какова его площадка на плате. Просто класс ! 

Для поиска компонента вам достаточно ввести в окно несколько символов из его марки или описания и затем выбрать из предложенных категорий.

 

в пакет включены отличные 
примеры работы в  PROTEUS  

примерно 80 устройств готовых к симуляции.

Это : 

- дата логер на жесткий диск (есть модель IDE HDD ! ) 
- можно поиграть в шахматы с ATmega128 !!! (есть модель "точскрина" ) 
- есть пример работы с графическим LCD дисплеем 
- управление шаговым двигателем 
- управление электродвигателем
- управление servo

- радиочастотные схемы, трансформаторы, линии передачи.

- конечно кнопки, индикаторы, светодиоды, связь с ПК, разные датчики, память

- конечно есть виртуальные приборы.

- отладка интерфейсов UART  i2c  TWI  SPI

 

 

Читайте - Краткий учебный Курс  Самоучитель    PROTEUS                     

Симулятор электронных устройств ПРОТЕУС, поддерживает микроконтроллеры   AVR , 8051, PIC10, PIC16, PIC18, ARM7, Motorola MC68HC11 

Полная система проектирования !

От идеи до результатов работы устройства 
и файлов для платы.

Быстрый старт, самые первые шаги ...

 

 

А если нет модели нужного 
вам компонента ?

     
 

Вот что я придумал ! 

Если вы не находите модели нужного вам компонента, то вы можете изобразить ее с помощью еще одного МК и возможно некоторых существующих компонентов. 

Дело в том что симуляторы не против не реально высокой частоты работы симулируемого МК - я пробовал 500 МГц в PROTEUS и все работает. 

Думаю вычислительная мощность МК в таком режиме позволит вам изобразить что угодно.

 

Преимущество моего метода 

Вам не нужно изучать методику и иметь инструментарий для создания моделей для VMLAB или PROTEUS стандартным способом. Вы лишь лишний раз поупражняетесь в программировании МК с которым работаете. 

Кроме того теперь PROTEUS не работает с моделями созданными без специально полученного кода для создания модели !  А по моему  методу вы сможете делать модели и при желании продавать их не имея такой лицензии и законно!

Надеюсь вы попробуете такой финт ушами ...

 
     

 

 


Итог этой страницы курса :

Вам необходимы две программы - CVAVR  и  VMLAB 
для усвоения дальнейшего материала курса.

 

 

 

<- Назад                    Дальше ->

 
 

 

В низу этой страницы есть описание
настройки   WinAVR  и  AVRstudio



 

          

 

ключевые слова: программирование микроконтроллеров, как написать программу для микроконтроллера, обучение программированию микроконтроллеров, микроконтроллеры 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\  и перезапустите компьютер. 
 
WinAVR
используется в AVR Studio как Plug-in начиная с AVR Studio 4.12 build 452, и
при инсталляции AVR Studio включит WinAVR в свою оболочку.

2)     Создайте папку для тестового проекта - например C:\WinAVR\_test

3)     Запустите редактор из группы меню программ WinAVR  - Programmers Notepad [WinAVR] -  появится пустое окно с название new  - в нём мы будем набирать исходный текст программы. Установите удобный для вас размер окна и можно закрыть окно Скриптов.  Сохраните файл как :
File -> SaveAs -> C:\WinAVR\_test\test.c


4
)     Скопируйте текст программы ниже в окно исходника  test.c 

/**************************************************

    Краткий курс 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 советую изучить

Папка WinAVR\doc\avr-libc\examples

 

 

 

5)     Создать Makefile (мэйк-файл) - в нем определяются параметры компиляции файлов проекта и делаются настройки.  Процесс создания Makefile  автоматизирован утилитой  MFile [WinAVR]   - запустите её.   

Сохраните  "File" -> "Save as"   Makefile  в папке проекта  C:\WinAVR\_test\

 

а) Выберите нужный МК - у нас  ATmega8

 

Примечание Если щелкнуть по "Enable Editing of Makefile" - то текст мэйк файла можно будет редактировать и без меню.

 

б) Щелкните "Main file name" и укажите файл с исходным текстом программы
  
      но без расширения - впишите просто  test   и  щелкните "ОК"


 

 

в) Теперь проверьте формат файла с информацией для отладки.  

файл .COFF  нужен для отладки программы в VMLAB  

Файл .ELF нужен для отладки программы в PROTEUS  и  AVR Studio

 


 

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

 

 

Замечания:

- Частоту тактирования  AVR мы укажем в исходном тексте программы, но её можно указать
  и в мэйкфайле, по-умолчанию она 8 МГц.

- Уровень оптимизации в мэйкфайле по-умолчанию средний  S  - при необходимости его можно изменить.

 

г) Сохраните  "File" -> "Save" отредактированный   Makefile 

 


6
)   Компиляция - её нужно выполнять после каждого изменения "исходника" ( -ов) - текста программы, текста используемых библиотек или мэйк-файла. Вначале жмите [WinAVR] Make Clean   - это очистка папки от продуктов предыдущих компиляций. Затем жмите [WinAVR] Make All  


 

Результат компиляции выводится в окно 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 остановок программы:

 

 


По времени остановок вы можете вычислить реальные паузы отработанные микроконтроллером в симуляторе PROTEUS по нашей программе в WinAVR.

 

Всё !  WinAVR  работает.
 

Скачайте проект - и попробуйте сами !

 

 

8) Проверка программы в AVR Studio 

    Запустите AVR Studio и закройте мастер проекта (обычно он запускается сам), откройте файл test.elf - студия предложит сохранить файл ее проекта, сохраните.  Выберите "дебаг платформ" - в чем отлаживать программу - AVR simulator и ATmega8 нажмите Finish.   В тексте программы установите точки останова на строчках изменения PB0 - щелкните на строчке правой кнопкой и выберите "тагл брейкпоинт".  Нажмите Alt+O и установите частоту такта 8 MHz затем "ОК".  Теперь нажмите "Стоп" и "Старт" симуляции, смотрите время остановки на точках останова. 

Вот скриншот симуляции собранный из трех на точках останова :

 

 

По этим данным можно подкорректировать паузы если нужна большая точность.

Главное видно, что паузы отрабатываются достаточно правильно.

 

 


 

 

Фирменная среда разработки   AVR Studio

 

СКАЧАЙТЕ  СВЕЖУЮ  ВЕРСИЮ !!!   
на сайте  ATMEL
 

Установите программу. 

Запустите AVR Studio, откроется окно - мастер загрузки. Выбирайте "новый проект".
Появится диалог создания нового проекта. Выбираем язык программирования. "Atmel AVR Assembler" - 
если будете программировать на ассемблере. Если у вас установлен WinAVR то можно программировать на Си,
выбирайте AVR GCC, дайте название проекту, название файлу с исходным текстом программы и укажите
расположение проекта на жестком диске ПК.  Например вот так:

 

Теперь нажмите "Next"  и  в следующем окне выберите среду отладки "Симулятор" и нужный вам AVR - я выбрал ATmega8.

Нажмите "Finish" - все готово для работы

 

1) Скопируйте текст программы выше в окно main.c

2) Установите точки останова на строчках изменения PB0

3) Скомпилировать программу и запустить симуляцию можно клавишами  Ctrl+F7

4) Клавишами  Alt+O откройте опции отладки и поставьте частоту 8 МГц и "ОК"

Теперь вы можете начать симуляцию выполнения программы и управлять
её ходом кнопками в верху AVR studio, комбинациями клавиш.

 

 

СИЛЬНО рекомендую вам отлаживать программы 

           в   PROTEUS        или в   VMLAB !



 

 
Отладка программы CVAVR
CodeVisionAVR  в  AVR Studio

1. Инсталлируете CodeVisionAVR и AVR Studio.
 

2. Запускаете CodeVisionAVR. Выбираете пункт меню "Settings -> Debugger".
В открывшемся окне указываете путь к AVR Studio. Как это сделать, написано
в хелпе CodeVisionAVR ("Help -> Help Topics -> CodeVisionAVR Integrated
Development Environment -> IDE Settings -> Setting the Debugger Path).
 

3. Если путь указан правильно, то, нажав на кнопочку с изображением
букашки-таракашки, которая находится в окне CodeVisionAVR (самый
верхний ряд кнопок), можно запустить AVR Studio.
 

4. В открывшемся окне AVR Studio, выбираете пункт меню "File ->Open File...".
В открывшемся окне выбираете путь в папку со своим проектом CodeVisionAVR,
и указываете файл проекта с расширением "cof".  AVR Studio предложит сохранить
свой файл проекта. Сохраните. После этого AVR Studio откроет окно "Select device
and debug platform".  Укажите своё средство отладки (у меня - AVR Simulator) и
ваш микроконтроллер. После нажатия кнопки "Finish", в окне справа должен
появиться листинг Вашей программы на Си.
 

Теперь можно запустить выполнение вашей програмы, можно
двигаться по листингу программы, устанавливать точки останова,
смотреть значения переменных и т.д.
как на картинке выше !


 

 

 

 

AVR УСТАРЕВШИЕ  Mature Devices
( Not Recommended for New Designs)
 
 
Devices Description
AT90S1200 Not recommended for new design: replaced by ATtiny2313
AT90S2313 Not recommended for new design: replaced by ATtiny2313
AT90S2323 Not recommended for new design: replaced by ATtiny25
AT90S2343 Not recommended for new design: replaced by ATtiny25
AT90S4433 Not recommended for new design: replaced by ATmega8
AT90S8515 Not recommended for new design: replaced by ATmega8515
AT90S8535 Not recommended for new design: replaced by ATmega8535
ATmega103 Not recommended for new design: replaced by ATmega128
ATmega161 Not recommended for new design: replaced by ATmega162
ATmega163 Not recommended for new design: replaced by ATmega16  ATmega16A
ATmega323 Not recommended for new design: replaced by ATmega32  ATmega32A

 

Домашняя страница микроконтроллеров AVR

 

ВСЕ  АКТУАЛЬНЫЕ   AVR  !

Микроконтроллыры AVR - параметрическая таблица

 

AVR 8-Bit RISC Devices

 
 
 Automotive AVR     megaAVR
 AVR Z-Link     Smart Battery AVR
 CAN AVR     tinyAVR
 LCD AVR     USB AVR
 Lighting AVR    
     right arrow Mature Products ( AVR не рекомендованы для новых проектов)


 

Сайт управляется системой uCoz