Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Тема: Ознакомление с компилятором языка C CodeVision
Цель работы: Получить навыки в создании и компиляции программ при помощи кросс-компилятора языка C CodeVision.
CodeVision представляет собой кросс-компилятор языка С, графическую оболочку и автоматический генератор программ, ориентированные на работу с семейством микроконтроллеров AVR фирмы Atmel. Внешний вид окна программы показан на рис. 1.1.
Рис. 1.1 Общий вид программы CodeVision
Программа представляет собой 32-разрядное приложение для работы в операционных системах Windows 95, 98, NT4.0 и 2000.
Кросс-компилятор включает в себя почти все элементы, соответствующие стандарту ANSI. Также в компилятор включены дополнительные возможности, ориентированные на использование архитектурных особенностей микроконтроллеров этого семейства и встроенных систем в целом.
Объектные файлы COFF позволяют осуществлять отладку программ с просмотром содержимого переменных. Для этого следует применять свободно распространяемый фирмой Atmel (www.atmel.com) отладчик AVR Studio debugger версии 3.5 или более поздний.
Для отладки систем, использующих последовательную передачу данных, в графической оболочке имеется встроенный Terminal.
Кроме стандартных библиотек языка С, компилятор имеет библиотеки для работы с:
• ЖКИ индикаторами со встроенным контроллером;
• шиной I2C фирмы Philips;
• датчиком температуры LM75 фирмы National Semiconductor;
• часами реального времени PCF8563 и РС8583 фирмы Philips, DS1302 и DS1307 фирмы Dallas Semiconductor;
• однопроводным протоколом фирмы Dallas Semiconductor;
• датчиками температуры DS1820 и DS1822 фирмы Dallas Semiconductor;
• датчиком температуры/термостатом DS1621 фирмы Dallas Semiconductor;
• памятью EEPROM DS2430 и DS2433 фирмы Dallas Semiconductor;
• шиной SPI;
• управлением режимами пониженного потребления энергии;
• временными задержками.
Также в CodeVision имеется автоматический генератор программ, который позволяет в течение считанных минут получить готовый код для следующих функций:
• настройка доступа к внешней памяти;
• определение источника прерывания Reset;
• инициализация портов ввода/вывода;
• инициализация внешних прерываний;
• инициализация таймеров/счетчиков;
• инициализация сторожевого таймера;
• инициализация UART;
• инициализация аналогового компаратора;
• инициализация встроенного АЦП;
• инициализация интерфейса SPI;
• инициализация поддерживаемых библиотеками CodeVision микросхем, работающих с однопроводным интерфейсом и шиной I2С;
• инициализация модуля ЖКИ-индикатора со встроенным контроллером.
Среда CodeVision AVR включает в себя программное обеспечение для работы с совместимым с платой STK200 программатором. После компиляции исходной программы на языке С полученный код может быть непосредственно запрограммирован в микроконтроллер. Этот программатор использует всего четыре сигнала: MOSI, MISO, SCK, RESET. Известно много простейших программаторов, соединяющихся с последовательным или параллельным портом персонального компьютера.
Напишем программу мигания светодиода, подключенного к «0»-й ножке порта A микроконтроллера ATmega16 по схеме, приведенной на рис. 1.2.
Рис. 1.2
Запускаем программу CodeVision из директории «C:\cvavr\bin\cvavr.exe» или используя ярлык на Рабочем столе.
Выбираем пункт меню: File New Project OK.
На вопрос использования мастера, отвечаем No.
В диалоговом окне Проводника создаем папку проекта с указанием своей фамилии:
Мои документы\ProjectsAVR\Ivanov\Lab1
в которой создаем файл проекта с именем Lab1.
После создания файла проекта, программа предложит настроить текущий проект. В диалоговом окне (см. рис.1.3) введите следующие настройки:
На вкладке C Compiler: Chip ATmega16; Clock 12 MHz
На вкладке After make: включить опцию Program the Сhip
Закрываем диалоговое окно (Ok).
Рис. 1.3
ВНИМАНИЕ: Ни при каких обстоятельствах НЕ ИЗМЕНЯЙТЕ ДРУГИЕ НАСТРОЙКИ БЕЗ УВЕДОМЛЕНИЯ ПРЕПОДАВАТЕЛЯ! Это может привести к выходу из строя микроконтроллера.
Настраиваем программатор. Для этого вызываем меню Setting Programmer и о открывшемся диалоговом окне выбираем настройки согласно рис. 1.4:
Рис. 1.4
Создаем программный файл. Выбираем меню:
File New Source Ok
В результате появится окно редактора кода с именем UNTITLED.C
В окне редактора наберите следующую программу:
#include <mega16.h> // Заголовочный файл описания контроллера ATMega16
#include <delay.h> // Заголовочный файл описания функций временных задержек
void main()
{
DDRA = 0xFF; // Порт A настраиваем на вывод
PORTA = 0xFF; // Устанавливаем все биты порта A в "1"
// При этом все светодиоду погаснут
while (1) // Бесконечный цикл
{ PORTA.0 = 0; // Зажигаем светодиод, подключенный к "0"-й ножке порта A
delay_ms(1000); // Пауза 1 с
PORTA.0 = 1; // Гасим светодиод, подключенный к "0"-й ножке порта A
delay_ms(1000); // Пауза 1 с
}
}
Сохраняем программу под именем Lab1: File SaveAs
Добавляем полученный файл в проект: Project Configure Files Add
Компилируем программу: Project Compile или клавишей F9.
Если ошибок при компиляции не обнаружено (см. рис. 1.5, а), компилируем весь проект:
File Make или комбинацией клавиш Shift F9. При этом получаем диалоговое окно (рис. 1.5, б) с предложением запрограммировать микроконтроллер.
а) б)
Рис 1.5