Codevisionavr для windows 10

Codevisionavr для windows 10

на cvavr.exe из папки crack

5 коментарів к записи “CodeVision AVR 2.05.0 Professional + crack”

не открывается setup file

Добрый вечер begun! На какую ос пытаетесь ставить CodeVision AVR 2.05.0 Professional + crack ?.

Проверено на операционных системах Windows XP – Windows 8.1 , всё отлично

у меня виндоус 7
скачал CodeVision AVR 2.05.0 Professional + crack
но видимо не установил crack
при компиляции пишет что код за пределом
где найти подробную инструкцию полной установки?

поучилось
просто старый СV.exe убрал из либ и вставил новый и вроде пошло
спасибо за поддержку

Отлично!

Оставить комментарий

Вы должны быть авторизованы, чтобы разместить комментарий.

Написание программ на С в Code Vision AVR для контроллеров не имеющих ОЗУ

Маленькие хитрости при работе с Code Vision AVR

CV AVR – хорошая интегрированная среда для написания программ на языке высокого уровня С для микроконтроллеров семейства AVR, АТ90, ATMEGA, АТХ MEGA. Большое спасибо разработчикам за хорошую программу, но есть в ней один существенный недостаток – это отсутствие поддержки контроллеров без оперативной памяти ОЗУ (RAM), а именно ATTINY11, ATTINY12, ATTINY15. Можно попробовать использовать другие компиляторы, но большинство из них такие как ICCTINY, WinAVR так же не поддерживают С для этих контроллеров. Прибегнув к некоторым ухищрениям все таки можно писать программы на С для этих контроллеров. Для этого необходимо, чтобы все переменные были глобальными и размещались в регистрах, последнее достигается путем использования модификатора register при объявлении переменных.

При таком объявлении переменных среда сама разместит переменные в регистрах. По умолчанию она разместит их в регистрах с R16 по R21. Если вы хотите использовать регистры по своему усмотрению, то это можно сделать с помощью директивы препроцессора #pragma regalloc- и указать самостоятельно куда поместить ту или иную переменную.

таким образом компилятор разместит переменную ttp в регистре R12, а переменную tmp в регистрах R10, R11, так как переменная типа int занимает два байта.

Шаг второй, необходимо отключить генерацию startup кода, то есть кода который выполняется до начала работы основной программы. Для этого в свойствах проекта

На вкладке C Compiler нужно установить флажок внешнего startup файла рис.2. Далее из каталога BIN программы скопировать файл STARTUP.ASM в каталог проекта и подправить его удалив команды очистки памяти SRAM так как ее нет в наших контроллерах изменить регистр косвенной адресации и убрать инициализацию глобальных переменных.

Красным отмечено все, что нужно убрать.

Шаг третий, необходимо подключить заголовочный файл. Так как в каталоге INC программы отсутствуют заголовочные файлы для наших контроллеров, то мы можем использовать файл TINY13.h так как на пример tiny13 и tiny 15 имеют практически одинаковый состав регистров расположенных по одним и тем же адресам, но обязательно с оглядкой на datasheet используемого контроллера. В прилагаемом примере два регистра все же отличались, по этому для наглядности сделал дополнительное определение.

При написании программ на С для контроллеров без оперативной памяти необходимо помнить, что эти микросхемы имеют трех уровневый аппаратный стек, в котором хранятся адреса возврата из функций, так, что не стоит увлекаться вложенными функциями, во избежание переполнения стека.

Читайте также:  Установка kerio control windows

Если предполагается использовать в своей программе прерывания, то обязательно необходимо использовать директиву препроцессора #pragma savereg-, которая предписывает компилятору не сохранять автоматически регистры в память при входе в процедуру обработки прерывания.

#pragma savereg-
#pragma regalloc-
register char ttp @12;

Далее после написания программы и ее компиляции необходимо подправить выходной asm файл который будет находиться в рабочем каталоге проекта. В нем компилятор генерирует команды инициализации стека, которых нет в наших контроллерах. Убрать нужно всего 4 строчки, которые находятся непосредственно перед началом основной программы:

После этого можно компилировать выходной asm файл. Делать это нужно по тому, что мы его немного подправили и тот hex, что сгенерировала программа нам уже не подойдет. Сделать это можно просто, в каталоге BIN программы находится компилятор avrasm2.exe, его можно скопировать в каталог проекта и выполнить команду:
avrasm2.exe –fI –o myfile.hex myfile.asm
Проект часто приходится перекомпилировать, по этому, чтобы не писать в командной строке много раз одно и тоже, можно создать файл с расширением bat (myfile.bat) и записать в него команду приведенную ниже, теперь для перекомпиляции достаточно его запустить и в итоге вы получите готовый к использованию hex файл.

Теперь о программировании контроллера. Специально для вас я собрал маленькое демонстрационное устройство на ATTINY15 состоящее из контроллера, двух резисторов и светодиода, и запрограммировал его.

Текст программы на языке С написанный в CVAVR 1.24.8d

CVAVR шить контроллер упорно не хотел, но SinaProg вполне справился с задачей.

Программатор использовался USBTiny

Видео работы устройства можно посмотреть по ссылке.

Работа в CodeVisionAVR. Написание первой программы

В настоящее время существуют множество различных программ для AVR микроконтроллеров. Самая узнаваемая программа — это, конечно, Atmel Studio, но в ней слишком много наворотов. Поэтому для новичков рекомендуется другая среда разработки: CodeVisionAVR. Именно о ней мы и поговорим в нашей статье. Скачать ее можно по прямой ссылке здес ь. Конечно, есть версии и посвежей, но кроме ненужных фишек в них ничего полезного не добавляют.

В чем же плюсы этой программы?

CodeVisionAVR — это среда разработки, которая поддерживает все операции с МК AVR. В ней мы можем написать заготовку кода, скомпилировать ее и с помощью программатора «залить» в нужный нам МК. И не надо отдельно качать программку-прошиватель, компилятор и другие ненужные программы. А зачем, если все это есть в КодВижне? Также КодВижн поддерживает почти все известные программаторы для AVR, будь это китайские клоны или оригинальные программаторы. Большой плюс КодВижена в том, что он сам создает готовый шаблон программы, из которого нам нужно удалить все лишнее, что является несомненным плюсом для новичков.

Вот так выглядит программа после ее установки (кликните по картинике, чтобы увеличить изображение)

Для того, чтобы создать новый проект, кликаем по значку «шестеренка»:

После вылезет вот такое окошко. Ставим маркер-точку на AT90, Atiny, FPSLIC и нажимаем «ОК».

Потом вылезет вот такое окошко. В красном прямоугольнике я показал, на какую часть окошка надо обратить внимание:

Выбираем наш МК. В данном случае я использую МК Atiny2313, поэтому из всего списка МК, которая предлагает нам программа, выбираю именно его.

Также можно поменять частоту «Clock». По умолчанию она устанавливается на 8 МегаГерц.

Далее нажимаем в этом же окошке на значок «шестеренки»:

Вышло вот такое окошко. Первым делом мы выбираем папку, в которую будем сохранять наш проект. Я создал папку на рабочем столе и назвал ее MK AVR. Потом написал название нашего проекта «lesson 1», ну типа «первый урок» ). Ну и потом нажимаем кнопку «Сохранить». Обратите внимание на расширение файла, которое я обвел фиолетовым цветом:

Читайте также:  Linux список физических дисков

Потом выйдет еще одно такое же окошко, только расширение файла будет другим. Не теряемся, прописываем также название файла, в данном случае lesson 1, и нажимаем кнопку «Сохранить»

И потом выйдет точно такое же завершающее окошко ;-). Также не теряемся, прописываем название файла и снова нажимаем кнопку «Сохранить».

Ну вот мы и готовы к созданию нашего первого проекта 😉

КодВижен для нас приготовил шаблон. Здесь явно много лишнего барахла. Первым делом сносим шапку

Выделяем, нажимаем Del.

Текст, который находится после двух косых черточек «// любой текст » или /* любой текст */ называется комментарием. Они нужны для удобного восприятия писанины и никак не сказываются на работу МК. Всех их мы выделяем и тоже сносим:

Итак, теперь думаем над проектом, который будем химичить. Моргание одного светодиодика — это уж слишком банально. Поэтому мы возьмем целых ТРИ светодиода! Наша программа будет поочередно зажигать каждый светодиод и потом в таком же порядке их тушить. У нас будет вот такой алгоритм, то есть порядок действий:

1) При подаче питания на МК зажечь первый светодиод.

2) Через 1 секунду зажечь второй светодиод, но первый светодиод при этом продолжает гореть.

3) Через 1 секунду зажечь третий светодиод, но два предыдущих также горят , то есть у нас горят сразу 3 светодиода.

4) Через 2 секунды тухнет третий светодиод.

5) Через секунду тухнет второй светодиод.

6) Еще через секунду тухнет первый светодиод.

7) Через 2 секунды весь этот цикл повторяется с пункта 1.

Алгоритм мы с вами согласовали. Осталось дело за малым: написать программку 😉

Итак, первые две строчки кода — это подключение библиотек. То есть эти файлы у нас уже есть в программе КодВижн. Нам осталось их только подключить.

Include с англ. — включать, содержать, подключать. Include еще называется оператором присоединения внешних файлов.

То есть мы с вами присоединяем к нашей программе библиотеку «tiny 2313.h» для МК Atiny 2313, так как именно на нем будет работать наша схема. А также подключаем библиотеку «delay.h». Delay — c англ. откладывать, отсрочивать. То есть грубо говоря, подключаем еще и задержку.

Уф, две строчки кода вроде бы написали).

Сама программа пишется после void main (void) между фигурными скобками. Там мы будем писать нашу программу.

Давайте внимательно глянем на наш МК:

Здесь мы видим основное название ножек, а в скобках их двойное предназначение. Двойное предназначение нас пока не интересует. Для нас в данный момент интересны обозначения PA, PB, PD. Их еще называют портами Ввода-Вывода. То есть на них можно что-то вводить и с них можно что-то выводить). В данном случае я хочу использовать ножки РВ0, РВ1, РВ2 для того, чтобы управлять светодиодами. На каждую из этих ножек я повешу по одному светодиоду, итого получается три. Остальные ножки нас не интересуют, так как мы не будем их использовать.

Наша схема будет выглядеть вот таким образом:

Следовательно, я должен настроить эти ножки для управления светодиодами.

Итак, в фигурных скобках пишем:

PORTB=0b00000000

0b — это бинарная система счисления. Настраивать в бинарной системе удобно тем, что каждый бит — это одна ножка МК. Поэтому счет идет справа-налево. Присмотритесь к рисунку выше. Здесь мы видим PORTB и нули при двоичной ситеме исчисления. Что это означает? А означает это то, что эти выводы при неиспользовании их в программе будут притянуты к нулю, то есть на них будет низкий потенциал или ноль Вольт. В случае, если мы видим единички установленные на каком-либо из битов, то это значит, что на этом порту при неипользовании в программе у нас будет высокий потенциал или плюс 5 вольт, или, говоря другими словами, этот вывод у нас будет принят к плюсу питания.

Читайте также:  Warface для linux mint

DDRB=0b00000111

Это означает, что PB0, PB1, PB2 настроены на выход. Считаем справа-налево, если вы не забыли. А если ноль, то значит настроены на вход.

После каждой строчки не забывайте ставить знак » ; » , иначе при компиляции (превращения вашей программы в код, который понимает МК), будут ошибки.

Теперь рассмотрим while (1). Он означает, что кусочек программы, который будет написан после него, будет зацикливаться, то есть повторяться бесконечное количество раз.

Ну и собственно можно начать писать саму программу…

Итак, как она будет выглядеть?

Смотрите, программа находится между фигурными скобками. Эти скобки принадлежат while (1). То есть этот кусок программы будет повторяться бесконечное число раз.

Давайте разберем саму программу…

PORTB.0=1; Это означает, что при подачи питания на МК, у нас ножка PB0 будет иметь логическую единицу , то есть на выходе этой ножки будет 5 Вольт, которые зажгут светодиод.

delay_ms(1000); Ждем 1000 миллисекунд, то есть 1 секунду.

PORTB.1=1; Через одну секунду на ножке PB1 появляется логическая единица, то есть 5 вольт, которые и зажгут второй светодиод

delay_ms(1000); Ждем еще одну секунду.

PORTB.2=1; Как только прошла секунда, у нас на ножке PB2 появляется логическая единичка, и, следовательно, зажигается третий светодиод.

delay_ms(2000); Ждем 2 секунды…Итого у нас горят все разом три светодиода в течение двух секунд.

Но потом как пройдут эти две секунды…

PORTB.2=0; На ножке PB2 появляется логический ноль, то есть напряжение исчезает. Третий светодиод тухнет.

delay_ms(1000); Ждем секунду

PORTB.1=0; Исчезает напряжение на ножке PB1. Светодиод второй тоже перестает источать свет.

delay_ms(1000); Ждем секунду.

PORTB.0=0; И на ножке PB0 напряжение тоже стает равно нулю. Первый светодиод тухнет тоже.

delay_ms(2000); Ждем две секунды и возвращаемся на начало программы, то есть к

PORTB.0=1;

delay_ms(1000);

Вот так выглядит полностью сама программа. Ее можно даже тупо скопировать и скомпилировать.

void main(void)
<
PORTB=0b00000000;
DDRB=0b00000111;

while (1)
<
PORTB.0=1;
delay_ms(1000);

Ну все, программа написана. Осталось дело за малым: преобразовать нашу писанину в машинный код, чтобы его понимал МК. Для этого мы нажимаем на кнопочку «создать все файлы проекта»

После нажатия на эту кнопку, у нас выскакивает окошко, в котором говорится о том, успешно ли прошла компиляция и тд. Если все нормально, то нажимаем ОК.

Если что-то не так, то отобразятся ошибки. Я специально убрал знак » ; » после одной строчки. Ругается примерно как-то так, и это не есть хорошо:

Если все ОК, то у вас в папке «Exe», там где у вас все проекты будет лежать готовый файлик, в данном случае «lesson 1. hex».

Теперь этот файлик с удовольствием скушает наш МК AVR и будет выполнять программку, которая находится в этом файле.

Оцените статью