Содержание
Урок 1. Первый проект
Урок 2. Управление кнопками
Урок 3. Подключение LCD
Урок 4. Использование ШИМ
Урок 5. Таймеры
Урок 6.1. Статическая индикация
Урок 6.2. Динамическая индикация
Урок 7.1. Генерация звука
Урок 7.2. Генерация звука. Продолжение
Урок 8.1. Передача данных через UART
Урок 8.2. Передача данных через UART. Продолжение»
Урок 9. Передача данных через SPI
Урок 10. Изучение АЦП. Простой вольтметр
Урок 11. Получение синуса при помощи ШИМ
Урок 12. Измерение температуры
Урок 13. Внешние прерывания.
Урок 14. Использование отладчика
Урок 15.1. Управление инкрементальным энкодером
Урок 15.2. Управление громкостью, при помощи энкодера
Урок 16. Управление RGB светодиодом
Урок 17. Использование ИК
Урок 18.1. Знакомство с графическим дисплеем
Урок 18.2 Вывод изображения на графический дисплей
Урок 18.3 Вывод русскоязычного текста
Урок 19. Формирование сигнала, при помощи ЦАП (R2R)
Урок 20. Опрос матричной клавиатуры
Урок 21. Сторожевой таймер
Урок 22.1 Воспроизведение wav. Введение.
Урок 22.2 Воспроизведение wav. Продолжение.
Урок 23.1 Работа с внешней памятью
Урок 23.2 Работа с файловой системой Fat

CodeVisionAVR среда разработки программ для микроконтроллеров. Хороший выбор для тех хочет научиться программировать микроконтроллеры. В интернете легко найти примеры, почти на все случаи жизни. В интернете много критики в адрес данной программы, не хочу спорить на этот счет. Могу сказать лишь одно, CodeVisionAVR позволяет получить результат быстро и просто, поэтому меня он полностью устраивает. Смело качаем и устанавливаем CodeVisionAVR, причем я рекомендую версию 1.25.9.

1. Запускаем CodeVisionAVR

2. Создаем новый файл File — New

Появится окно в котором выбираем Project (проект). На вопрос использовать мастер или нет отвечаем да

                 

3. Появится окно мастера настроек, в котором переходим на вкладку вкладка Chip позволяет выбрать используемый микроконтроллер и его частоту. В данном примере выбран ATmega8 с частотой 8МГц. Остальные вкладки позволяют настроить периферию, более подробно будет разобрано в последующих статьях.

  

4. После окончания настройки микроконтроллера создаем проект File — Generate, Save and Exit

5. Сохраняем исходный файл .с, файл проекта .prj и файл мастера проекта .cwp.

6. Появится окно для редактирования исходного текста

7. Наша задача вычистить код и привести его к следующему виду:

#include  

void main(void)
{

while (1)
{

};
}

8. Разбираем оставшийся код:

#include <mega8.h> так мы говорим компилятору, что используемый микроконтроллер ATmega8
void main(void)
{}
Главный цикл программы
while (1)
{};
Бесконечный цикл, заставляет программу выполняться бесконечное количество раз

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

24 комментария: Создание проекта в CodeVision AVR C Compiler

  • Виктор:

    Уважаемый админ скажите пожалуйста как можно написать код программы чтоб она работала некоторое время и стералась с мк или переставала работать

  • admin:

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

  • Виктор:

    не получяется с еепром пожалуста поясните по подробнее

  • admin:

    что именно не получается? 🙂

  • Сергей:

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

  • kama3er:

    сломал уже всю голову переменная типа bit не может быть объявлена в eeprom только типа char почему ??что мне для хранения флагов исползовать 8ми битную переменную с пустыми 7 ью битами или инвертировать один бит при изменении флага ??

  • admin:

    да именно так

  • Vitaliy:

    А вот такой вопрос:
    Делал вроде все согласно видиео, но при попытке собрать проект Project->Build (Shift+F9) выплывает окошко с сообщением, что не может прочитаться файл NameFile.obj
    В чем может быть проблема?

  • admin:

    пути проверьте, не должно быть кирилицы

  • Vitaliy:

    Кириллицы не было, но на всякий случай переустановил программу в корневой каталог. И все заработало.

  • Ярослав:

    Ребята, может у кого есть ссылка на проверенный экземпляр программы?
    Извините, просто сначала установил какую-то версию CV AVR 3.**, потом установил рекомендованную версию. По итогу в первом случае не работал таймер после генерации проэкта визардом, а в версие 1.25.9 программа ругается на определение переменной в цикле for, не определяет функцию putchar, по чем даже уже скопированный пример кода с этого сайта, еще в обеих случаях не работает if, код проверял много раз, по немногу уже не малый кусок написан и не могу закончить программу из за постоянных глюков…

  • admin:

    ссылки на пиратчину не оставляю, уверен что описанные глюки и не глюки вовсе, проверяйте код.

  • Ярослав:

    ну к примеру один из вариантов проблемы

    if(PORTC.4 == 0){
    PORTC.3=1;
    PORTC.2=0;
    }
    else{
    PORTC.3=0;
    PORTC.2=1;
    }
    где PC4 вход и подтянут к плюсу, на схеме кнопка на массу.
    в протеусе индикаторы которые показывают наличие напряжения на ножках блымают, а эффекта нет.
    но когда в условии прописую 0 или 1, то работает правильно…
    я в полном недоумении и даже уже не знаю на что грешить… ((

  • Ярослав:

    короче код работает только маленькими кусками, а в куче вечно что-то лагает…
    я так понял проверять придется исключительно на реальном железе..((

  • admin:

    так у вас тут ошибка

  • ether:

    вы не то на равенство 0 проверяете

  • Ярослав:

    Как не то, у меня на этой ножке кнопка…
    А на ножках potrc.3, portc.4 DC движок-энкодер (временный, для проверки и наладки)
    А в чем ошибка???
    В такой форме можно же присваивать значения? Или лучше делать это через разряды (не знаю как правильно обозвать)?

  • Ярослав:

    Я понял, в условии не PORTC.4 а PINC.4 …
    ))
    Перечитал гору литературы, а теперь надо к азам вертеться…))

  • у меня вопрос у AS7 при компиляции получается сильно большой хекс каким образом его можно уменьшить?а программа на CVAVR(HEX) меньше что делать учител?

  • admin:

    поставьте оптимизацию -o3

  • IseMan:

    Добрый день.При создании проекта в CodeVisionAVR 3.12 и компиляции даже пустого проекта на ATmega8 .Куча ошибок в том числе ругается и на #include В чём дело не знаю в инете нет ничего.Как вы думайте в чём дело.Спасибо.

  • IseMan:

    Куча ошибок в том числе ругается и на #include .

  • IseMan:

    не печатается почем то mega8.h.

  • admin:

    сложно сказать, возможно cavr кривой

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Счетчик
Яндекс.Метрика