Главная » Статьи » Программирование » Программирование в CV AVR |
CodeVision
CV AVR CodeVisionAVR - это кросс-компилятор Си, интегрированная среда разработки и автоматический генератор программ, разработанные для семейства AVR-мк-ов Atmel. Обеспечивает выполнение почти всех элементов языка Си, которые разрешены архитектурой AVR, с некоторыми добавленными характеристиками, которые реализуют преимущество специфики архитектуры AVR.
Кроме стандартных библиотек Си, компилятор Си CodeVisionAVR имеет библиотеки для:
Теперь давайте напишем пару программ в пример как работать с компилятором. Будет 2 программы. Моргание светодиодом и бегущие огни. Возьмём наш универсальный контроллер и модуль для него. На модули уже есть 3 светодиода. Для начала скачайте компилятор, желательно версию CodeVision V1.25.9. Более новую версию можно скачать с официального сайта. Теперь займёмся написание программы. Для начала откроем компилятор и нажимаем кнопку Create new file В появившемся окне выбираем Project (Проект). В этом окне выбирается тип создаваемого файла. Затем появится окно "Confirm" в нём отвечаем Yes. Выбирая ответ Yes, мы запускаем автоматический генератор программ CodeWizardAVR. В следующем окне в закладке Chip выбираем мк и частоту кварца. Затем в этом же окне открываем File->Generate, save and exit. В результате появляется сгенерированный код, но мы его практически весь удаляем и оставляем только. то что нам нужно. Смотреть на скриншотах ниже И пишем такой вот код: Code #include <mega16.h>
#include <delay.h> //Включаем библиотеку для организации задержек void main(void) { PORTB=0x00; //Выставляем все выходы порта B на 0, то есть, выключаем весь порт B DDRB=0xFF; //Делаем порт B, как выход, чтобы на выходах порта было напряжение 5В while (1) { PORTB.0=1; //Включаем светодиод на 0 выходе порта B delay_ms(500); //Делаем задержку на 500 миллисекунд PORTB.0=0; //Выключаем светодиод на 0 выходе порта B delay_ms(500); //Делаем задержку на 500 миллисекунд }; } После нажимаем кнопку make the project И прошиваем мк файлом .hex И вторая программа. Делаем всё тоже самое. Code #include <mega16.h>
#include <delay.h> //Включаем библиотеку для организации задержек void main(void) { PORTB=0x00; //Выставляем все выходы порта B на 0, то есть, выключаем весь порт B DDRB=0xFF; //Делаем порт B, как выход, чтобы на выходах порта было напряжение 5В while (1) //Цикл программы { PORTB.0=1; //Включаем светодиод на 0 выходе порта B delay_ms(100); //Делаем задержку на 100 миллисекунд PORTB.1=1; //Включаем светодиод на 1 выходе порта B delay_ms(100); //Делаем задержку на 100 миллисекунд PORTB.2=1; //Включаем светодиод на 2 выходе порта B delay_ms(100); //Делаем задержку на 100 миллисекунд PORTB.0=0; //Выключаем светодиод на 0 выходе порта B delay_ms(100); //Делаем задержку на 100 миллисекунд PORTB.1=0; //Выключаем светодиод на 1 выходе порта B delay_ms(100); //Делаем задержку на 100 миллисекунд PORTB.2=0; //Выключаем светодиод на 2 выходе порта B delay_ms(100); //Делаем задержку на 100 миллисекунд }; } Оба проекта можно скачать по ссылке. Удачи! Ссылка на следующую статью. Источник: www.enore.ru | |
Категория: Программирование в CV AVR | Добавил: Space (23.01.2011) | | |
Просмотров: 4538 | |
Всего комментариев: 0 | |