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) {}; |
Бесконечный цикл, заставляет программу выполняться бесконечное количество раз |
Это минимальная программа, пустой шаблон си, с которым мы будем работать в дальнейшем.
Уважаемый админ скажите пожалуйста как можно написать код программы чтоб она работала некоторое время и стералась с мк или переставала работать
элементарно, выполняете программу, записываете в еепром бит и при следующем запуске если бит установлен то программа выполняться не будет
не получяется с еепром пожалуста поясните по подробнее
что именно не получается? 🙂
Виктор , очень вы смешите меня, судя по вопросу вы создали очень крутую программу , которая не подлежит распространению, НО так вы не знаете как использовать число в еепром, мне очень понятен масштаб такой секретности 😆
сломал уже всю голову переменная типа 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
Добрый день.При создании проекта в CodeVisionAVR 3.12 и компиляции даже пустого проекта на ATmega8 .Куча ошибок в том числе ругается и на #include В чём дело не знаю в инете нет ничего.Как вы думайте в чём дело.Спасибо.
Куча ошибок в том числе ругается и на #include .
не печатается почем то mega8.h.
сложно сказать, возможно cavr кривой