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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Сериг
Это не хвост, это антенна
Сообщения: 1451
Зарегистрирован: Пт фев 19, 2010 19:39:28
Откуда: Москва

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

Сообщение Сериг »

ребят пытаюь вывести русские слова на лсиди 26x2 испольую рл плис и минус не работает так как цвавр ругается...че делать?
holland.9
Открыл глаза
Сообщения: 74
Зарегистрирован: Чт июн 11, 2009 20:37:57
Откуда: Харьков

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

Сообщение holland.9 »

Сериг писал(а):испольую рл плис и минус не работает так как цвавр ругается...че делать?


както так:

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

#pragma rl+
   lcd_gotoxy( 0,0 );
   lcd_putsf( "бла-бла-бла" );
   ////////////////////
#pragma rl-
Аватара пользователя
Сериг
Это не хвост, это антенна
Сообщения: 1451
Зарегистрирован: Пт фев 19, 2010 19:39:28
Откуда: Москва

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

Сообщение Сериг »

holland.9 писал(а):
Сериг писал(а):испольую рл плис и минус не работает так как цвавр ругается...че делать?


както так:

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

#pragma rl+
   lcd_gotoxy( 0,0 );
   lcd_putsf( "бла-бла-бла" );
   ////////////////////
#pragma rl-

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

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

Сообщение ARV »

Сериг писал(а):хм спасиб попробую хотя уже нет я девушке дисплей с признаниями подарил)))))))
ачуметь! :o :o :o О tempora, о mores!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Сериг
Это не хвост, это антенна
Сообщения: 1451
Зарегистрирован: Пт фев 19, 2010 19:39:28
Откуда: Москва

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

Сообщение Сериг »

а что ? :))) по началу по приколу иницилизация потом I LOVE YOU через три сек Very Very Much :)еще через три from Sergey to Aisylu love ...  :))) :))) :))) :))) :))) :))) ей оооочень понравилось... :)))
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

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

Мой уютный бложик... заходите!
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

Как в CodeVisionAVR возвратить из функции несколько значений?
Пробовал объявлять так

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

void sun (char sd, char sm, char sy, char la, char lo, char z, char &x1, char &x2);
хотел возвратить x1 и x2 но нехочет компилировать.
Можно ли возвращать сразу восемь значений?
«И всё-таки она вертится!»
Аватара пользователя
O-LED
Мудрый кот
Сообщения: 1800
Зарегистрирован: Вт окт 05, 2010 01:08:57
Контактная информация:

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

Сообщение O-LED »

Вроде никак. Но можно возвратить ссылку на массив, или на структуру.
Еще можно объявить глобальные переменные, внутри функции им присвоить нужные значения, а где нужно использовать эти переменные.
KIT
Rusja2008
Открыл глаза
Сообщения: 68
Зарегистрирован: Пн окт 06, 2008 15:51:58
Откуда: Черкассы

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

Сообщение Rusja2008 »

Apparatchik, глянуть бы на код Вашей функции полностью, ато как то char &x1, char &x2 настораживает.
Не умееш - не берись, но не взявшись не научишся.
Аватара пользователя
avreal
Опытный кот
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна
Контактная информация:

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

Сообщение avreal »

А что там смотреть. Это ж не С++, ссылочных типов нет. Это при передаче аргументов-адресов надо писать func( &x1, &x2), а при объявлении/определении функции - void func( int *px1,int *px2) и внутри функции *px1 = 5;

В языке С можно вернуть из функции структуру.

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

typedef struct {
    int a, b, c;
    char s[5];
} some_data_t;

some_data_t foo(int i)
{
    some_data_t temp;
    temp.a = i;
    temp.b = i/2;
    temp.c = -3;
    temp.s[0] = 'A';
    return temp;
}

some_data_t some_data;

void moo() {
    some_datadata = foo(8);
}
Но на мелких контроллерах это невыгодно по коду/стеку. Если структура, влазит в регистры, например, два байтовых значения, то компилятор в регистрах её и возвращает. А для больших структур в функцию foo() первым аргументом, до наших аргументов, передаётся указатель на структуру, в moo() на стеке заводится временная переменная some_data_t, в foo() передаётся указатель на неё, а после возврата результат переписывается в some_data.
Вроде бы какие-то компилятор передавали сразу указатель на some_data, но не уверен.
Поэтому лучше явно передавать указатель на структуру — это будет лучше и неявного указателя, и передачи восьми указателей на отдельные переменные.
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

O-LED писал(а):Еще можно объявить глобальные переменные, внутри функции им присвоить нужные значения, а где нужно использовать эти переменные.

Так наверно будет самое простое. Я просто хотел написать отдельный файл *.h чтоб потом подключать когда надо, но придётся всё делать в основном коде.
«И всё-таки она вертится!»
Аватара пользователя
O-LED
Мудрый кот
Сообщения: 1800
Зарегистрирован: Вт окт 05, 2010 01:08:57
Контактная информация:

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

Сообщение O-LED »

ну так и сделай, просто во всех программах где будешь использовать эту недофункцию, используй одно и тоже имя "возвращаемых" переменных, а эти переменные объяви как extern. после этого они будут видны внутри всех функций и подключаемых файлах
KIT
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

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

Сообщение ValBag »

Для справки: появился CodeVision AVR 2.05.0
Аватара пользователя
odesasha
Прорезались зубы
Сообщения: 237
Зарегистрирован: Пт фев 12, 2010 14:02:22
Откуда: Одесса

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

Сообщение odesasha »

А вот и ссылка : http://get-key.gen.in/1915-codevision-a ... rial-crack
Установил - пока работает .
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

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

Сообщение ValBag »

odesasha писал(а):А вот и ссылка : http://get-key.gen.in/1915-codevision-a ... rial-crack
Установил - пока работает .
Говорят, что дизассемблер стал внятный?
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

odesasha писал(а):А вот и ссылка : http://get-key.gen.in/1915-codevision-a ... rial-crack
Установил - пока работает .

Avast 5.0.677 нашол в архиве "каку"!
«И всё-таки она вертится!»
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

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

Сообщение ValBag »

Apparatchik писал(а):Avast 5.0.677 нашол в архиве "каку"!
NOD32 молчит.
Amstron
Нашел транзистор. Понюхал.
Сообщения: 173
Зарегистрирован: Вт дек 21, 2010 21:18:52

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

Сообщение Amstron »

Помогите разобраться с массивом!

unsigned int a[100]; //Я создаю массив

Далее создаю функцию:


{
a[0] = 186;
a[5] = 279;
a[30] = 372;
a[45] = 465;
a[50] = 556;
a[65] = 651;
a[75] = 744;
a[80] = 837;
a[90] = 930;
a[99] = 1024;
}


Эту функцию я вставляю в void main(void) , перед основным бесконечным циклом для записи в массив чисел .

Далее в оснвном цикле вывожу значение 5 элемента массива 279

indication_IND = a[5];
А у меня на дисплее отображается число 23 вместо 279!!! Не могу понять в чем тут дело!!!

Второе: если я объявляю массив как flash unsigned int a[100]; то как потом мне в нем изменить значение элементов?
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

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

Сообщение ValBag »

Amstron писал(а):Далее создаю функцию:
Ну и где она?
Далее в оснвном цикле вывожу значение 5 элемента массива 279

indication_IND = a[5];

А у меня на дисплее отображается число 23 вместо 279!!! Не могу понять в чем тут дело!!!
Какой тип переменной indication_IND ?
Amstron
Нашел транзистор. Понюхал.
Сообщения: 173
Зарегистрирован: Вт дек 21, 2010 21:18:52

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

Сообщение Amstron »

ValBag писал(а):Какой тип переменной indication_IND ?

unsigned int indication_IND;
РАЗОБРАЛСЯ!!! У меня сначало значение сохранялось в переменную unsigned char !

ВОТ Я СТУПИЛ(((((

А с этим разобраться не поможите?
если я объявляю массив как flash unsigned int a[100]; то как потом мне в нем изменить значение элементов?
Смысл в том , что я хочу создать массив в энергонезависимой памяти. Потом измеить в нем значение элементов. У меня компиль CodeVisionAVR ругается если я значения меняю...
Ответить

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