Страница 151 из 421

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

Добавлено: Вт ноя 01, 2011 12:46:44
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.

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

Добавлено: Вт ноя 01, 2011 20:52:19
hd44780
Лови - http://ifolder.ru/26697570
Я когда-то его ставил, вроде работал. Но особо не пользовался ..

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

Добавлено: Ср ноя 02, 2011 10:06:50
demiurg301
Оо спасибо. Установился как нормальный CVAVR, а не eval. А не подскажете каквы крякали его?
Потомучто толи встал он как eval толи не до конца крякнулся. Но double он понимать не хочет ... дефолтит его к float.

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

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

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

Добавлено: Ср ноя 02, 2011 11:19:22
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, судя по буржуйским форумам, та же хрень ...
Поэтому, попытайтесь как-то изменить алгоритм.

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

Добавлено: Ср ноя 02, 2011 11:40:58
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

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

Добавлено: Ср ноя 02, 2011 12:04:05
hd44780
Да среда нормальная...

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

Плюс генератор кода и куча библиотек :)) .

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

Добавлено: Ср ноя 02, 2011 12:09:59
Мастер Ломастер
hd44780 писал(а):Да среда нормальная...

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

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

Добавлено: Ср ноя 02, 2011 13:21:24
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)

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

Добавлено: Ср ноя 02, 2011 14:21:05
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 часов на поиск непонятно каких (и непонятно чьих :)) ) ошибок.

Если хотите - закидайте меня тапками :))) .

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

Добавлено: Ср ноя 02, 2011 14:46:49
Мастер Ломастер
так проблема-то у вас была явно не в макросах... во всяком случае, если они (макросы) правильные.

а вот интересно мне знать, что скажет ваш VC++ на конструкцию var.1 или что-то в этом же духе?

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

Добавлено: Чт ноя 03, 2011 07:08:43
cat-dog-god0
Доброго времени суток.
Пытаюсь осилить микроконтроллеры и возник такой вопрос.
Как "опросить" кнопку ? Скажем, кнопка замкнута, горит светодиод (Code Vision AVR), не замкнута - светодиод тухнет ??? Как реализовать нечто наподобие триггера: кратковременно нажали на кнопку и отпустили, светодиод загорелся и после отпускания не тух ????

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

Добавлено: Чт ноя 03, 2011 08:11:31
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;

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

Добавлено: Чт ноя 03, 2011 12:23:28
cat-dog-god0
Скажите, что означают Х и У ??? Пока экспериментирую на AT Mega 16

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

Добавлено: Чт ноя 03, 2011 12:37:30
pyzhman
Х - буква нужного порта, например А. Y -нужный разряд порта, от 0 до 7.
Вы что, батенька, просто установили вижн и пытаетесь что-то написать? Нехило бы изучить теорию мк.

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

Добавлено: Чт ноя 03, 2011 16:45:26
cat-dog-god0
Столкнулся с такой трудностью: для написания программы нужны знания Си, но для программирования МК одних знаний Си маловато, т.к. необходимо еще знать как обратиться к портам, к памяти и т.д. :dont_know:
Хороших книг по данному вопросу не нашел: либо даются общие представления о языке Си, либо очень размазано... :(
МК, т.к. я в этом деле новичок, изучаю через Proteus

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

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

Только надо эту ногу настроить на выход :)) . Иначе те же операторы совсем другое делают...

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

Добавлено: Чт ноя 03, 2011 18:15:34
*Trigger*
Добавлю:
Для чтения состояния ноги используем x=PINA.1, всего порта целиком - x=PINA.
Порт может быть любой, номер вывода тоже.

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

Добавлено: Чт ноя 03, 2011 18:56:19
cat-dog-god0
А в каком месте программы настраиваются порты на вход/выход ???

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

Добавлено: Чт ноя 03, 2011 19:02:48
cat-dog-god0
Абстрактный вопрос. МК зажигает 4 светодиода (скажем эффект бегущего огня), как кнопкой менять частоту эффекта ???