Главная » Статьи » Программирование » Программирование в CV AVR

CodeVision

CV AVR

   CodeVisionAVR - это кросс-компилятор Си, интегрированная среда разработки и автоматический генератор программ, разработанные для семейства AVR-мк-ов Atmel. Обеспечивает выполнение почти всех элементов языка Си, которые разрешены архитектурой AVR, с некоторыми добавленными характеристиками, которые реализуют преимущество специфики архитектуры AVR.



   Кроме стандартных библиотек Си, компилятор Си CodeVisionAVR имеет библиотеки для:
  • алфавитно-цифровых LCD-модулей;
  • шины I2C
  • температурного датчика LM75
  • часов реального времени PCF8563, PCF8583, DS1302, DS1307
  • протокола 1-wire
  • температурного датчика DS1820/DS18S20
  • термометра/термостата DS1621
  • SPI
  • и т.д.
   В интернете есть замечательная и очень подробная книга. Советую скачать. Весит порядка 60 мб "CodeVision AVR пособие для начинающих". Автор книги Лебедев М. Б.

   Теперь давайте напишем пару программ в пример как работать с компилятором. Будет 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) | Автор: Кирилл E W
Просмотров: 4488 | Теги: codevision avr, программа в cv avr, программа на си, codevision, светодиод, avr, cv avr, моргаем светодиодом
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]