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 <mega8.h> 
 
void main(void)
{
 
while (1)
{
 
};
}

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

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

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

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

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

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

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

  • что именно не получается? :)

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

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

  • да именно так

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Свежие записи
Последние комментарии
  • Загрузка...
Архивы
Счетчик
Яндекс.Метрика