CodeVision AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

Re: CodeVision AVR в вопросах и ответах

Сообщение demiurg301 »

hd44780 писал(а):
vbif87 писал(а):5 проводков - это какой тип программатора в CodeVisionAVR выбрать? спасибо.


Как я понимаю, 5 проводков это LPT порт. По-моему, CvAVR такого не понимает :( .
Используйте PonyProg. Я уже 8 лет только им и пользуюсь :) .

demiurg301, у меня есть 2.05, но подробностей не помню. Если не забуду, дома гляну. Я им не пользуюсь, пока 1.25 хватает.


Понимает , 5 проводков это Stk200-300 вроде. Я использую stk200 - шьётся очень быстро, но очень глючный зараза. Напрямую 5 проводков включать стрёмно... Даже через буфер(stk200) есть вероятность пальнуть порт ( что я когда то и сделал - коротнув вход на корпус, на котором обычно без заземления висит 220В )

Посмотрите пожалуйста. Я бы тоже сидел на 1.25.9 но нужно sd карту подключиться, а там(2.05) сразу встроенная библиотека elm для FAT.
Аватара пользователя
hd44780
Встал на лапы
Сообщения: 132
Зарегистрирован: Вт июл 14, 2009 09:27:37
Откуда: Донецк, Украина

Re: CodeVision AVR в вопросах и ответах

Сообщение hd44780 »

Лови - http://ifolder.ru/26697570
Я когда-то его ставил, вроде работал. Но особо не пользовался ..
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

Re: CodeVision AVR в вопросах и ответах

Сообщение demiurg301 »

Оо спасибо. Установился как нормальный CVAVR, а не eval. А не подскажете каквы крякали его?
Потомучто толи встал он как eval толи не до конца крякнулся. Но double он понимать не хочет ... дефолтит его к float.
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Мастер Ломастер »

demiurg301 писал(а):Оо спасибо. Установился как нормальный CVAVR, а не eval. А не подскажете каквы крякали его?
Потомучто толи встал он как eval толи не до конца крякнулся. Но double он понимать не хочет ... дефолтит его к float.
вместо того, чтобы бороться с надуманной проблемой, вы бы лучше подумали над тем фактом, что даже float - это почти всегда перебор для AVR. наверняка ваша программа может отлично обойтись без вычислений с плавающей точкой.
не уподобляйтесь мухе, которая может часами биться в стекло рядом с открытой форточкой.
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
hd44780
Встал на лапы
Сообщения: 132
Зарегистрирован: Вт июл 14, 2009 09:27:37
Откуда: Донецк, Украина

Re: CodeVision AVR в вопросах и ответах

Сообщение hd44780 »

Хрен его знает ...
Поставил у себя, ломанул, ограничение на 2 кило кода снялось (мой проект на 11 кил кода скомпилил норм, в железе результат не проверял - оно дома, я на работе :)) ), пишет - 2.05.0 Professional.
Но на double ругается :( .

Полез я в его help и вот, что я увидел:

float 32 бит, диапазон - ±1.175e-38 to ±3.402e38
double 32 бит, диапазон - ±1.175e-38 to ±3.402e38

Т.е. это одно и то же.
Да и на сайте ихнем в рекламах рекламируются только библиотеки разные (для FAT, SD карт, граф. дисплеев и пр). А про double нигде не звука ...

Может его там по факту и нет? И надо искать какие-то сторонние библиотеки ...

Кстати, в WinAVR, судя по буржуйским форумам, та же хрень ...
Поэтому, попытайтесь как-то изменить алгоритм.
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

Re: CodeVision AVR в вопросах и ответах

Сообщение demiurg301 »

Мастер Ломастер писал(а):
demiurg301 писал(а):Оо спасибо. Установился как нормальный CVAVR, а не eval. А не подскажете каквы крякали его?
Потомучто толи встал он как eval толи не до конца крякнулся. Но double он понимать не хочет ... дефолтит его к float.
вместо того, чтобы бороться с надуманной проблемой, вы бы лучше подумали над тем фактом, что даже float - это почти всегда перебор для AVR. наверняка ваша программа может отлично обойтись без вычислений с плавающей точкой.
не уподобляйтесь мухе, которая может часами биться в стекло рядом с открытой форточкой.


Да я собственно и не бьюсь, я исправил на float, пока правда не проверял на железе. Там те запятые только косвенные. Привести данные в виде x*10^(-y) к нормальному виду(x- long int). Можно вообще в строку преобразовать и запятую отсчитать... Просто сам факт что компилятор выводит такой warning .

hd44780
Но на double ругается


А значит это нормально... ))) В 1.25 версиях double c float тоже не различались ...

ЗЫ Надо вобщем уходить от этой глюкосреды.. Хотя код он меньше даёт - с 23К до 21К на 2.05
Аватара пользователя
hd44780
Встал на лапы
Сообщения: 132
Зарегистрирован: Вт июл 14, 2009 09:27:37
Откуда: Донецк, Украина

Re: CodeVision AVR в вопросах и ответах

Сообщение hd44780 »

Да среда нормальная...

Меня лично WinAVR гораздо больше раздражает, потому, что в нём нету конструкций типа PORTA.1=1. Какие-то жуткие макросы с кучей логических операций ...
Ещё не глядел, во что там эти макросы транслируются. Вряд ли тот макрос там будет транслироваться в одну команду вида CBI 0x18,7 ...
Мне приходилось эти sbi/cbi руками прописывать ...

Плюс генератор кода и куча библиотек :)) .
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Мастер Ломастер »

hd44780 писал(а):Да среда нормальная...

Меня лично WinAVR гораздо больше раздражает, потому, что в нём нету конструкций типа PORTA.1=1. Какие-то жуткие макросы с кучей логических операций ...
Ещё не глядел, во что там эти макросы транслируются. Вряд ли тот макрос там будет транслироваться в одну команду вида CBI 0x18,7 ...
Мне приходилось эти sbi/cbi руками прописывать ...
конструкции типа PORTA.1 нет вообще ни в одном стандартном компиляторе Си! ну не предусмотрено стандартом такого! а "сложные макросы" тем и хороши, что одинаково правильно и корректно работают всегда и везде. да и код генерируют ровно такой, как нужно: при работе с регистрами ввода-вывода если возможно, всегда генерируется одна команда SBI-CBI.
битва с дураками проиграна, победители торжествуют. слава победителям!
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

Re: CodeVision AVR в вопросах и ответах

Сообщение demiurg301 »

Мастер Ломастер писал(а):
hd44780 писал(а):Да среда нормальная...

Меня лично WinAVR гораздо больше раздражает, потому, что в нём нету конструкций типа PORTA.1=1. Какие-то жуткие макросы с кучей логических операций ...
Ещё не глядел, во что там эти макросы транслируются. Вряд ли тот макрос там будет транслироваться в одну команду вида CBI 0x18,7 ...
Мне приходилось эти sbi/cbi руками прописывать ...
конструкции типа PORTA.1 нет вообще ни в одном стандартном компиляторе Си! ну не предусмотрено стандартом такого! а "сложные макросы" тем и хороши, что одинаково правильно и корректно работают всегда и везде. да и код генерируют ровно такой, как нужно: при работе с регистрами ввода-вывода если возможно, всегда генерируется одна команда SBI-CBI.


Нисколько не смущает PORTA.1 при условии что проще прописать
#define SetBit(x,y) (x|=y)
#define ClrBit(x,y) (x&=~y)
#define TestBit(x,y) (x&y)
Аватара пользователя
hd44780
Встал на лапы
Сообщения: 132
Зарегистрирован: Вт июл 14, 2009 09:27:37
Откуда: Донецк, Украина

Re: CodeVision AVR в вопросах и ответах

Сообщение hd44780 »

Мастер Ломастер писал(а): "сложные макросы" тем и хороши, что одинаково правильно и корректно работают всегда и везде


Оффтоп в теме, но всё равно скажу. Душа кричит :)) .

Дело ваше. Хотите - пишите свои 10-этажные макросы и испытывайте тот или иной компилятор на прочность.

У меня был один случай, лет 5-6 назад. Правда не в CvAVR и даже не в микроконтроллерах, а в обычной проге для обычного компа на VC++6.0.
Написал примитивнейшее условие: if (val&MASK) { ... } val - BYTE. НЕ РАБОТАЕТ :))) !!!
Крутил, вертел, писал и !=0, и ==0, и со скобками, и без них - по хрен - не работает оно ... 3 часа убил .....
Полез в asm код - а там команда типа test al, 0. Если кто не знает, test это AND с потерей результата. Выставляет только флаги. Результат - сами подумайте какой ... Никакие скобки не действуют.
Пришлось вытянуть val&MASK в отдельную переменную и уже её проверять в if-е. Так заработало.

С тех пор я с большой осторожностью отношусь к "сложным макросам", которые "одинаково правильно и корректно работают всегда и везде" :))) . И всеми силами стараюсь их избегать.
Пусть лучше мой код будет байт на 10-20 больше и на одну тысячную процента медленнее, зато я не буду тратить n часов на поиск непонятно каких (и непонятно чьих :)) ) ошибок.

Если хотите - закидайте меня тапками :))) .
Последний раз редактировалось hd44780 Ср ноя 02, 2011 14:47:59, всего редактировалось 1 раз.
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение Мастер Ломастер »

так проблема-то у вас была явно не в макросах... во всяком случае, если они (макросы) правильные.

а вот интересно мне знать, что скажет ваш VC++ на конструкцию var.1 или что-то в этом же духе?
битва с дураками проиграна, победители торжествуют. слава победителям!
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: CodeVision AVR в вопросах и ответах

Сообщение cat-dog-god0 »

Доброго времени суток.
Пытаюсь осилить микроконтроллеры и возник такой вопрос.
Как "опросить" кнопку ? Скажем, кнопка замкнута, горит светодиод (Code Vision AVR), не замкнута - светодиод тухнет ??? Как реализовать нечто наподобие триггера: кратковременно нажали на кнопку и отпустили, светодиод загорелся и после отпускания не тух ????
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение pyzhman »

1.

Код: Выделить всё

DDRN.M= 1;
DDRX.Y= 0;
PORTX.Y= 1;

while(1)
{
PORTN.M= PINX.Y;
}

2.

Код: Выделить всё

old_knopka= knopka;
knopka= PINX.Y;
if(old_knopka & !knopka) ~PORTN.M;
Docendo discimus
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: CodeVision AVR в вопросах и ответах

Сообщение cat-dog-god0 »

Скажите, что означают Х и У ??? Пока экспериментирую на AT Mega 16
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: CodeVision AVR в вопросах и ответах

Сообщение pyzhman »

Х - буква нужного порта, например А. Y -нужный разряд порта, от 0 до 7.
Вы что, батенька, просто установили вижн и пытаетесь что-то написать? Нехило бы изучить теорию мк.
Docendo discimus
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: CodeVision AVR в вопросах и ответах

Сообщение cat-dog-god0 »

Столкнулся с такой трудностью: для написания программы нужны знания Си, но для программирования МК одних знаний Си маловато, т.к. необходимо еще знать как обратиться к портам, к памяти и т.д. :dont_know:
Хороших книг по данному вопросу не нашел: либо даются общие представления о языке Си, либо очень размазано... :(
МК, т.к. я в этом деле новичок, изучаю через Proteus
Аватара пользователя
hd44780
Встал на лапы
Сообщения: 132
Зарегистрирован: Вт июл 14, 2009 09:27:37
Откуда: Донецк, Украина

Re: CodeVision AVR в вопросах и ответах

Сообщение hd44780 »

Любая нога контроллера - уже триггер.
Вписал в соотв. порт, бит 1 - на ноге 5в появилось.
И будет там висеть, пока ты его сам не поменяешь. Например, PORTA.1 = 1. Аналогично PORTA.1=0 - ноль выставляет.

Только надо эту ногу настроить на выход :)) . Иначе те же операторы совсем другое делают...
Последний раз редактировалось hd44780 Чт ноя 03, 2011 18:15:40, всего редактировалось 1 раз.
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

Re: CodeVision AVR в вопросах и ответах

Сообщение *Trigger* »

Добавлю:
Для чтения состояния ноги используем x=PINA.1, всего порта целиком - x=PINA.
Порт может быть любой, номер вывода тоже.
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: CodeVision AVR в вопросах и ответах

Сообщение cat-dog-god0 »

А в каком месте программы настраиваются порты на вход/выход ???
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: CodeVision AVR в вопросах и ответах

Сообщение cat-dog-god0 »

Абстрактный вопрос. МК зажигает 4 светодиода (скажем эффект бегущего огня), как кнопкой менять частоту эффекта ???
Ответить

Вернуться в «AVR»