Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

На WinAVR + AVR Studio c CVAVR

Непрочитано 10.03.2010, 21:38  
Vetal-soft
Временная регистрация
 
Регистрация: 04.08.2006
Сообщений: 67
Сказал спасибо: 2
Сказали Спасибо 20 раз(а) в 11 сообщении(ях)
Vetal-soft на пути к лучшему
Подмигивание На WinAVR + AVR Studio c CVAVR

Установка софта:
Скачиваем WinAVR здесь
http://sourceforge.net/projects/winavr/files/
Скачиваем AVR Studio здесь
http://www.atmel.com/dyn/products/to...p?tool_id=2725

Сначала рекомендуется установить WinAVR, а потом AVR Studio.

Первая программа:
Для начала, банально, мигнем светодиодиком.

Код:
#define F_CPU 1000000UL    /* Тактовая частота в Гц                                 */
#include ‹avr/io.h›        /* Опребеляет имена для портов ввода-ывода               */
#include ‹util/delay.h›    /* Дает возможность формирования задержки                */

int main (void) {          /* Начало выполнения программы, главная функция          */
    DDRA |= (1 ‹‹ 0);      /* Устанавливаем порт PORTA.1 как выход                  */
    for (;;)               /* Бсконечный цикл                                       */
    {
        PORTA ^= (1 ‹‹ 0); /* Инвертируем состояние вывода                          */
        _delay_ms(1000);   /* Задержка в 1000 миллисекунд                           */
        _delay_us(10);     /* и то же, только в микросекундах (для примера)         */
    }
return 0;                  /* Выход из программы, в данном случае останов который   */
                           /*  никогда не произойдет т.к. выше бесконечный цикл     */
} //end main
Визардов встроенных нет, надеюсь что скоро о них вы забудите, не как о страшном сне, а просто забудите т.к. они вам будут не нужны.

ЗЫ ... продолжение следует. Далее: как настроить USART/UART и что такое FIFO, как вывести "Hello World!" на терминал.
Реклама:
Vetal-soft вне форума  
Непрочитано 10.03.2010, 23:30  
avr123-nm-ru
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию Re: на WinAVR + AVR Studio c CVAVR

1) Студию можно без регистрации скачать на Atmel.ru

2) WinAVR скачать там - sourceforge.net/projects/winavr/files/
есть и "потэбл" версия.

Документация ПОДРОБНАЯ по WinAVR лежит в папке типа
C:\WinAVR\doc\avr-libc

После инсталяции WinAVR, и главное несколько примеров в короых показаны основные конструкции Си и программирование в WinAVR.

Примеры в папаке типа - C:\WinAVR\doc\avr-libc\examples

3) Свободная "free" - RTOS OSA под 8-битные AVR (WinAVR и IAR) досупна там:
wiki.pic24.ru/doku.php/osa/ref/download/intro
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru

Последний раз редактировалось avr123-nm-ru; 11.03.2010 в 09:42.
avr123-nm-ru вне форума  
Непрочитано 10.03.2010, 23:42  
avr123-nm-ru
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию Re: на WinAVR + AVR Studio c CVAVR

ШАГ 2

Запустите AVR Studio. Появится МАСТЕР ВИЗАД настройки проекта, если он не появился то запустите его через меню - Прожект - Прожект Визад.

Для создания нового проекта кликните кнопку в мастере - "Нью прожект" и выбирайте "AVR GCC" - возможность использовать этот инструмент вам дала установка WinAVR.

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

После заполнения полей нажмите "некст" - в следующем диалоге вы можеет выбрать платформу для отладки и нужную вам модель AVR. Например симулятор студии или отладку в железе или отладка в PROTEUS ( если он у вас уже установлен ).

После выбора AVR и средства отладки можно нажать "финиш" - мастер закроется и у вы увидите рабочее пространство AVR студии в котором будет открыт файл вашего исходника - пока пустой.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru

Последний раз редактировалось avr123-nm-ru; 10.03.2010 в 23:56.
avr123-nm-ru вне форума  
Непрочитано 11.03.2010, 00:05  
avr123-nm-ru
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию Re: на WinAVR + AVR Studio c CVAVR

ШАГ 3

Теперь можно набрать исходный текст вашей программы или скопировать тот что предложен в первом посте этого топика.

Теперь все готово к компиляции и симуляции программы.

Нажимаем в меню "Билд" -› "Билд энд ран" - если программа набрана без ошибок то она скомпилируется и запустится та отладочная платформа которую вы выбрали в ШАГ 2.

Я выбрал симулятор AVR Студии и дешовый ATmega16 за 80 рублей.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 11.03.2010, 00:31  
avr123-nm-ru
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию Re: на WinAVR + AVR Studio c CVAVR

ШАГ 2 - альтернативный вариант -

Модификация готвого проекта вместо создания с нуля.

Это удобно для новичка тем что можно до модификации убедиться что вся линейка, связка инструментов учавствующих в проекте работает.

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

Например вот такая связка - WinAVR - AVR Studio - PROTEUS

Очень мощная свзяка инструментов для AVR !

Распакуйте приложеный к этому посту архив в папку C:\WinAVR_PROTEUS

Двойным кликом запустите файл проекта AVR studio - AVR241.aps

Запустится AVR Studio в рабочем пространстве которой будет фрагмент интерфеса PROTEUS со схемой отлаживаемого устройства.

В данном примере это LCD на 2 семисегментные цифры и микроконтроллер ATmega128.

Шелкните на окне LCD_main.c и затем найдите строку кода

DDRD = 0xFF;

Щелкните на ней левой кн. мыши и затем правой - в меню выберите "Тогл брейкпоинт" - установите точку останова программы.

Запустите отладку нажав зеленый треугольничек "Старт дебагин" в панели инструментов на верху и после устаканивания студии щелкните пиктограмку "лист бумаги со стрелкой вниз" - это Run ( F5 ) значит "бежать по программе" выполнять ее.

Программа запустится и остановится на точке останова.

Вы можеет развернуть в окне "I/O View" группу PORTE и увидите обозначеное красным цветом значение 0xFF в регистре направления работы порта E - красным цветом в Студии обоначается только что изменившееся значение - т.е. только что у нас была выполнена строка программы над той на которой мы поставили точку останова.

Подробнее о регистрах, о портах AVR и язык программирования Си для микросонтроллеров вы можете прочитать в кратком учебном курсе по AVR для начинающих с нуля -
proavr.narod.ru/02.htm - http://proavr.narod.ru/02.htm

Снова нажмите "Run" - программа продолжит работать, а на LCD появиятся символы: А b


===


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


===

архив: proavr.narod.ru/WinAVR_PROTEUS.rar
Вложения:
Тип файла: rar WinAVR_PROTEUS.rar (132.6 Кб, 768 просмотров)
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru

Последний раз редактировалось avr123-nm-ru; 11.03.2010 в 09:39.
avr123-nm-ru вне форума  
Непрочитано 11.03.2010, 07:00  
Vetal-soft
Временная регистрация
 
Регистрация: 04.08.2006
Сообщений: 67
Сказал спасибо: 2
Сказали Спасибо 20 раз(а) в 11 сообщении(ях)
Vetal-soft на пути к лучшему
По умолчанию Re: на WinAVR + AVR Studio c CVAVR

Разберем по порядку:
Код:
PORTA ^= (1 ‹‹ 0);
PORTA - порт ввода\вывода
^ - исключающее ИЛИ
= - оператор присвоения
1 ‹‹ x - сдвиг бита 1 в лево на x

если не понятно с записью "^=" , то это тоже самое что:
Код:
PORTA =  PORTA ^ (1 ‹‹ 0);

Последний раз редактировалось Vetal-soft; 11.03.2010 в 07:11.
Vetal-soft вне форума  
Непрочитано 11.03.2010, 10:43  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: на WinAVR + AVR Studio c CVAVR

Не надо делать так:
Код:
#define F_CPU 1000000UL    /* Тактовая частота в Гц
Частота задается в свойствах проекта, там же где и тип кристалла.
Без UL, просто цифра в герцах.
ЗЫ. Не превращайте ветку в филиал всем известного курса. А то уже началось - разноцветные шрифты, шаги и т.п.
kison вне форума  
Непрочитано 11.03.2010, 14:11  
andries5
Почётный гражданин KAZUS.RUN
 
Регистрация: 19.02.2008
Сообщений: 1,840
Сказал спасибо: 128
Сказали Спасибо 613 раз(а) в 430 сообщении(ях)
andries5 на пути к лучшему
По умолчанию Re: на WinAVR + AVR Studio c CVAVR

В WINAVR удобно использовать _BV().
DDRA |= (1 ‹‹ 0); /* Устанавливаем порт PORTA.0 как выход
то же самое
DDRA |= _BV(0); /* Устанавливаем порт PORTA.0 как выход
или
WDTCSR |= (_BV(WDCE)) | (_BV(WDE)); /* Устанавливаем 1 в указанных битах
MCUSR &= ~(_BV(WDRF)); /* Устанавливаем 0 в указанном бите
Пишут что так работает быстрее.

Последний раз редактировалось andries5; 11.03.2010 в 14:19.
andries5 вне форума  
Непрочитано 11.03.2010, 14:42  
Vetal-soft
Временная регистрация
 
Регистрация: 04.08.2006
Сообщений: 67
Сказал спасибо: 2
Сказали Спасибо 20 раз(а) в 11 сообщении(ях)
Vetal-soft на пути к лучшему
По умолчанию Re: на WinAVR + AVR Studio c CVAVR

Работает одинаково т.к.
Код:
#define _BV(bit) (1 ‹‹ (bit))
и при оптимизации код
Код:
PORTA |= _BV(5);
в ассемблере будет таким
Код:
sbi PORTA, 5
Vetal-soft вне форума  
Непрочитано 11.03.2010, 19:21  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: На WinAVR + AVR Studio c CVAVR

Надо не верить, а книжки по С читать. Из них можно узнать как работает препроцессор в языке С. И что такое #define
Окажется что после работы препроцессора конструкция
Код:
#define _BV(bit) (1 ‹‹ (bit))
PORTA |= _BV(5);
Станет
Код:
#define _BV(bit) (1 ‹‹ (bit))
PORTA |= (1‹‹(5));
И только потом в дело вступит компилятор. Так что записи на самом деле равнозначны. Я пользуюсь 1‹‹bit, это ИМХО удобней. Потому что при инициализации переферии наприме пишу
TCCR1A = (1‹‹CS12)|(1‹‹CS11)|(0‹‹CS10);
Т.е. нулевые значения тоже присутствуют, хотя и не влияют на результат операции. Но когда нужно очень легко поменять состояние бит в регистре.
Не претендую на истину в последней инстанции. Применяйте то, что покажется более удобным.
kison вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подниму тему WinAVR vs IAR oleg110592 Микроконтроллеры, АЦП, память и т.д 5 24.10.2015 14:06
Си-шный компилятор в AVR Studio меняет последовательность команд svv11 Микроконтроллеры, АЦП, память и т.д 29 21.03.2010 05:47
прерывания usart в avr studio 4.13 zubr_ Микроконтроллеры, АЦП, память и т.д 6 14.10.2009 18:33
AVR studio и GCC Nifelheim Микроконтроллеры, АЦП, память и т.д 12 26.09.2009 23:33


Часовой пояс GMT +4, время: 13:57.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.