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

Обсуждаем контроллеры компании Atmel.
ВитГо
Вымогатель припоя
Сообщения: 680
Зарегистрирован: Ср фев 24, 2010 19:16:07

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

Сообщение ВитГо »

понятно.. значит придется через неопределенный указатель делать..

еще один вопрос

есть структура

typedef struct {
unsigned par1:1,
par2:2,
par3:3;
unsigned int par4;
} NEW_STRUCT;

теперь хочу ее объявить как массив переменных в eeprom
eeprom NEW_STRUCT NS[3];

получаю ошибку declaration char is incompatible with previous one: eeprom NEW_STRUCT [3];

это тоже особенность кодевижена или по стандарту такая запись не верна ?

кстати, сейчас проверил, структуру
typedef struct {
unsigned char par123;
unsigned int par4;
} NEW_STRUCT;

тоже нельзя объявить eeprom NEW_STRUCT NS[3];

может есть какой то другой синтаксис или в eeprom просто нельзя размещать структуры а можно только простые типы данных типа char или int ?
ВитГо
Вымогатель припоя
Сообщения: 680
Зарегистрирован: Ср фев 24, 2010 19:16:07

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

Сообщение ВитГо »

ARV писал(а):
ВитГо писал(а):в строчке struct tag * nextitem;
ругается на tag
avr-gcc не ругается, на сколько я понял, такая запись укладывается в стандарт Си.


acr-gcc - это в IDE WinAVR ?

боюсь начинать религиозную войну - но что можно почитать относительно сильных сторон WinAVR и CodeVisionAVR ?

самый главный аргумент я уже понял (WinAVR freeware).. еще есть чтото ?
ааа, второй - более точное следование стандарту GNU C тоже уже не первый раз вы мне показываете..

тогда какие есть минусы ? (чтобы не узнать о них после того как новый проект будет написан на половину)

p.s. сейчас начинаю новый проект кодера для радиоуправления моделями.. самое время определяться со средой (пока ничего особо не написано - пара драйверов (экран, органы управления, генерация сигналов) - это перепишется быстро)
Аватара пользователя
lacvel
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Пт сен 03, 2010 08:59:21
Откуда: Москва
Контактная информация:

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

Сообщение lacvel »

ВитГо писал(а):начинаю новый проект кодера для радиоуправления моделями..


Вы уже посмотрели существующий открытый прожект на CVAVR ATmega128 на rcdesign.ru ?
ВитГо
Вымогатель припоя
Сообщения: 680
Зарегистрирован: Ср фев 24, 2010 19:16:07

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

Сообщение ВитГо »

lacvel писал(а):
ВитГо писал(а):начинаю новый проект кодера для радиоуправления моделями..


Вы уже посмотрели существующий открытый прожект на CVAVR ATmega128 на rcdesign.ru ?


Да, конечно...
просто в существующем проекте предлагается модернизировать имеющийся пульт аппаратна и потом залить прошивку..
я же пишу прошивки для аппаратур Turnigy\Eurgle\FlySky 9x... - то есть аппаратно аппаратуры уже существуют, у них заводской корпус, экран, кнопки меню, цифровые триммеры... - и все по цене около 60$ (без доставки)

мой проект на rcdesign находиться здесь -> http://forum.rcdesign.ru/blogs/50021/blog9239.html
это первая версия прошивки..

сейчас задумал написать вторую (другой подход к программированию моделей).. вот и не хочеться ошибиться с выбором IDE и компилятора для программирования..

в avr-gcc - можно структуры сохранять в eeprom ?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

ВитГо писал(а):тогда какие есть минусы ? (чтобы не узнать о них после того как новый проект будет написан на половину)
сложно указать на минусы, если с плюсами других компиляторов не знаком :))) попробую от противного
WinAVR - это по-настоящему бесплатный компилятор, его не надо ломать. Есть ему альтернативы по этому качеству?
WinAVR - по-настоящему кроссплатформенное средство, то есть этот самый компилятор имеется для всех известных ОС, значит, ваши исходники смогут использовать пользователи Линуха, БСД-ишники или даже яблочники (по поводу последнего - не уверен, что яблочники что-то компилируют: имхо, они все больше рисуют и пишут музыку)
для WinAVR написано море библиотек, есть форумы, на которых отвечают на вопросы не дилетанты, а профессионалы и сами разработчики компилятора, причем оперативно отвечают.
WinAVR достаточно строго соблюдает требования стандартов, о чем я вечно всем надоедаю :))) это облегчает понимание кода и его переносимость.
WinAVR дает весьма компактный код. IAR дает получше - но см.п.1 :)))
WinAVR создает файлы, пригодные для отладки в AVR Studio и Протеусе.
WinAVR не имеет нормальной IDE для разработки - Programmers Notepad я не считаю за серьезное средство, хотя он неплох для первого знакомства. Зато WinAVR отлично взаимодействует с IDE AVR Studio и многими другими, в том числе бесплатными. Лично я пользуюсь Eclipse и очень-очень-очень доволен.
WinAVR поддерживает GNU-ассемблер, возможности которого несоизмеримо выше тех, что имеет встроенный в студию.
WinAVR генерирует листинг, в котором подчас невозможно понять, какой оператор Си на какие команды ассемблера распадается. Но это следствие работы оптимизатора.
WinAVR имеет ряд глюков разной степени "страшности" (во-всяком случае, известных), эти глюки описаны на сайте разработчиков и обсуждаются на форумах. Большая часть из них приводит к неоптимальности кода, некоторые глюки могут дать "опасный" код, т.е. код с ошибками, но в реальности я за два года активной работы ни разу ни с одним опасным глюком не столкнулся. Во всяком случае, ошибки исправляются постепенно, пути их обхода известны.
WinAVR поддерживает С++.

Собственно, пока это все, что вспомнил, сравнить с альтернативами вы сможете и сам и :) для меня решающим был самый первый аргумент :)))

ВитГо писал(а):в avr-gcc - можно структуры сохранять в eeprom ?

да, конечно, все что угодно и где угодно

P.S. работа с WinAVR позволяет быстро понять уровень собственных знаний языка Си, как раз потому, что действуя строго по стандарту не прощает ошибок. volatile-переменные - это первые грабли, которые стукают по лбу каждого начинающего работать с WinAVR :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
lacvel
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Пт сен 03, 2010 08:59:21
Откуда: Москва
Контактная информация:

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

Сообщение lacvel »

Забыл добавить про цикл твоих статей по WinAVR :))
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

lacvel писал(а):Забыл добавить про цикл твоих статей по WinAVR :))

я не рекламирую свои статьи, я рекламирую WinAVR, причем с искренней верой в свою правоту :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
ВитГо
Вымогатель припоя
Сообщения: 680
Зарегистрирован: Ср фев 24, 2010 19:16:07

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

Сообщение ВитГо »

ARV писал(а):
lacvel писал(а):Забыл добавить про цикл твоих статей по WinAVR :))

я не рекламирую свои статьи, я рекламирую WinAVR, причем с искренней верой в свою правоту :)))



ООО!! дайте ссылку на статьи !

пожалуй я попробую пересесть на WinAVR.. не люблю пользоваться нелегальным софтом...
я так понимаю по WinAVR мне нужно будет писать в другой раздел форума...
Ildus
Открыл глаза
Сообщения: 46
Зарегистрирован: Вт дек 02, 2008 22:04:27
Откуда: Нижний Новгород

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

Сообщение Ildus »

В MEGA88 нужно посчитать период и синхронизироваться с внешним сигналом.
Не работает код с внешним прерыванием INT0 от первого импульса, по которому запускаю таймер1, а по второму пытаюсь посчитать период. Но работает код, если запускаю от INT0, а останавливаю счет по INT1 (сигнал подаю и на INT0, и INT1). Пробовал и на MEGA8515, то же самое.
Подскажите, в чем засада?

Вот код:
Не работает...

interrupt [EXT_INT0] void ext_int0_isr(void)
{
if (START_TC == 1) // if FC
{
if (TCCR1B == 0)
{
TCNT1H = 0;
TCNT1L = 0;
TCCR1A = 0;
TCCR1B = 0x01; // 50 ns
}
else
{
TCCR1B = 0; //stop
EICRA=0x00;
EIMSK=0x00;
TC1 = ((int)TCNT1H << 8) | TCNT1L ; // data
//FC = 10000000/(TC1*5);
};
}
else
{
EICRA=0x00;
EIMSK=0x00;
for (r=0; r<N_DEL; r++)
{
#asm("nop")
};//for l
CAMERA=1;
#asm("nop")
LASER=1;
for (r=0; r<L_DEL; r++)
{
#asm("nop")
};//for l
#asm("nop")
LASER=0;
#asm("nop")
CAMERA=0;
EICRA=0x02;
EIMSK=0x01;
EIFR=0x01;
};
}

Работает...

interrupt [EXT_INT0] void ext_int0_isr(void)
{
if (START_TC == 1) //if FC
{
TCNT1H = 0;
TCNT1L = 0;
TCCR1A = 0;
TCCR1B = 0x01; // 50 ns
FC_bit=0;
EICRA=0x08;//1
EIMSK=0x02;
EIFR=0x02;
}
else
{
EICRA=0x00;
EIMSK=0x00;
for (r=0; r<N_DEL; r++)
{
#asm("nop")
};//for l
CAMERA=1;
#asm("nop")
LASER=1;
for (r=0; r<L_DEL; r++)
{
#asm("nop")
};//for l
#asm("nop")
LASER=0;
#asm("nop")
CAMERA=0;
EICRA=0x02;
EIMSK=0x01;
EIFR=0x01;
};
} //int0

interrupt [EXT_INT1] void ext_int1_isr(void)
{
TCCR1B = 0; //Stop
EICRA=0x00;
EIMSK=0x00;
TC1 = ((int)(TCNT1H << 8)) | TCNT1L ; // data
// FC = 10000000/(TC1*5);
FC_bit=1;
EICRA=0x02;
EIMSK=0x01;
EIFR=0x01;
}//int1
Последний раз редактировалось Ildus Сб сен 11, 2010 14:35:53, всего редактировалось 1 раз.
Аватара пользователя
lacvel
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Пт сен 03, 2010 08:59:21
Откуда: Москва
Контактная информация:

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

Сообщение lacvel »

Отключи смайлы в сообщении.

И скачай PROTEUS - увидишь что не так.
Аватара пользователя
lacvel
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Пт сен 03, 2010 08:59:21
Откуда: Москва
Контактная информация:

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

Сообщение lacvel »

ARV писал(а):я рекламирую WinAVR
Реклама бесплатного - это ПРИКОЛЬНО ! Да еще в топике про CVAVR :beer:
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

lacvel писал(а):Реклама бесплатного - это ПРИКОЛЬНО ! Да еще в топике про CVAVR :beer:
бесплатная реклама бесплатного - обратите внимание :)))
народ дошел до ручки: чтобы он взял бесплатное надо ему это всячески рекламировать...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
yokimbe
Родился
Сообщения: 16
Зарегистрирован: Вт сен 07, 2010 02:23:03

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

Сообщение yokimbe »

кто работал в программе LSD EDIT? откликнитесь
Аватара пользователя
avreal
Опытный кот
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна
Контактная информация:

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

Сообщение avreal »

ARV писал(а):народ дошел до ручки: чтобы он взял бесплатное надо ему это всячески рекламировать...
Ну!
Слоган к рекламе - "ГНУтое - не ломанное!"
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Аватара пользователя
Antol.St
Нашел транзистор. Понюхал.
Сообщения: 163
Зарегистрирован: Вт окт 14, 2008 11:29:03
Откуда: Алтайский край, Бийск
Контактная информация:

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

Сообщение Antol.St »

Привет всем! Помогите пжалста, перевожу проектик из под WinAVR в CodeVisionAVR. Знает кто нибудь где взять функцию strncasecmp для CodeVision?
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

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

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

Привет. Пишу программу для проверки ид1.
А она чего то не компилится. Компилятор говорит, что в строке 126 не хватает символа "(".
Файл прилагается.
Вложения
тестер.c
(10.4 КБ) 546 скачиваний
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

*Trigger* писал(а):Привет. Пишу программу для проверки ид1.
А она чего то не компилится. Компилятор говорит, что в строке 126 не хватает символа "(".
Файл прилагается.

вы посчитайте все фигурные скобки в вашем проекте... у вас там наворочено куча лишних... в частности, в строке 121 закрывающая фигурная скобка с точкой запятой (что б вы были в курсе - после закрывающей скобки в теле функции точка с запятой не требуется) - так вот, эта самая скобка ЗАКРЫВАЕТ оператор while(1), а значит нижеследующие else ни к селу ни к городу...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Saadov
Нашел транзистор. Понюхал.
Сообщения: 155
Зарегистрирован: Вт авг 19, 2008 23:39:59
Откуда: г.Смоленск

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

Сообщение Saadov »

Antol.St писал(а):Привет всем! Помогите пжалста, перевожу проектик из под WinAVR в CodeVisionAVR. Знает кто нибудь где взять функцию strncasecmp для CodeVision?


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

signed char strncmp(char *str1, char *str2, unsigned char n)


      compares at most n characters of the string str1 with the string str2.
Returns <0, 0, >0 according to str1<str2, str1=str2, str1>str2.

Вроде так
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

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

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

ARV писал(а):
*Trigger* писал(а):Привет. Пишу программу для проверки ид1.
А она чего то не компилится. Компилятор говорит, что в строке 126 не хватает символа "(".
Файл прилагается.

вы посчитайте все фигурные скобки в вашем проекте... у вас там наворочено куча лишних... в частности, в строке 121 закрывающая фигурная скобка с точкой запятой (что б вы были в курсе - после закрывающей скобки в теле функции точка с запятой не требуется) - так вот, эта самая скобка ЗАКРЫВАЕТ оператор while(1), а значит нижеследующие else ни к селу ни к городу...

Всё решилось. Спасибо. Дело было в скобках...
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Knife_1987
Родился
Сообщения: 1
Зарегистрирован: Пн сен 13, 2010 02:55:40

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

Сообщение Knife_1987 »

доброго времени суток.
скиньте пожалуйсто в ЛС варианты схем подключения диодов для кубика 5х5х5.
в наличии имеется:
atmega32 -1шт
74hc595 -4шт
схему не обязательно на этих деталях, главное в схеме это возможность управлять отдельными диодами. а то уже видел пару схем в которых при некоторых комбинациях загорались промежуточные.
или дайте ссылки на схемы. описание приветствуется.
спасибо
Ответить

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