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

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

Добавлено: Ср дек 22, 2010 17:36:40
Сериг
ребят пытаюь вывести русские слова на лсиди 26x2 испольую рл плис и минус не работает так как цвавр ругается...че делать?

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

Добавлено: Чт дек 23, 2010 15:07:33
holland.9
Сериг писал(а):испольую рл плис и минус не работает так как цвавр ругается...че делать?
както так:

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

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

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

Добавлено: Чт дек 23, 2010 16:11:35
Сериг
holland.9 писал(а):
Сериг писал(а):испольую рл плис и минус не работает так как цвавр ругается...че делать?
както так:

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

#pragma rl+
   lcd_gotoxy( 0,0 );
   lcd_putsf( "бла-бла-бла" );
   ////////////////////
#pragma rl- 
хм спасиб попробую хотя уже нет я девушке дисплей с признаниями подарил)))))))но все равно попробую))))))))))

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

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

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

Добавлено: Чт дек 23, 2010 16:23:16
Сериг
а что ? :))) по началу по приколу иницилизация потом I LOVE YOU через три сек Very Very Much :)еще через три from Sergey to Aisylu love ...  :))) :))) :))) :))) :))) :))) ей оооочень понравилось... :)))

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

Добавлено: Чт дек 23, 2010 19:25:00
ARV
а я че? я ни че... :oops:

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

Добавлено: Сб дек 25, 2010 01:36:43
Apparatchik
Как в CodeVisionAVR возвратить из функции несколько значений?
Пробовал объявлять так

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

void sun (char sd, char sm, char sy, char la, char lo, char z, char &x1, char &x2);
хотел возвратить x1 и x2 но нехочет компилировать.
Можно ли возвращать сразу восемь значений?

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

Добавлено: Сб дек 25, 2010 02:12:18
O-LED
Вроде никак. Но можно возвратить ссылку на массив, или на структуру.
Еще можно объявить глобальные переменные, внутри функции им присвоить нужные значения, а где нужно использовать эти переменные.

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

Добавлено: Сб дек 25, 2010 13:28:46
Rusja2008
Apparatchik, глянуть бы на код Вашей функции полностью, ато как то char &x1, char &x2 настораживает.

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

Добавлено: Сб дек 25, 2010 14:06:04
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, но не уверен.
Поэтому лучше явно передавать указатель на структуру — это будет лучше и неявного указателя, и передачи восьми указателей на отдельные переменные.

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

Добавлено: Сб дек 25, 2010 15:18:14
Apparatchik
O-LED писал(а):Еще можно объявить глобальные переменные, внутри функции им присвоить нужные значения, а где нужно использовать эти переменные.
Так наверно будет самое простое. Я просто хотел написать отдельный файл *.h чтоб потом подключать когда надо, но придётся всё делать в основном коде.

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

Добавлено: Сб дек 25, 2010 15:37:29
O-LED
ну так и сделай, просто во всех программах где будешь использовать эту недофункцию, используй одно и тоже имя "возвращаемых" переменных, а эти переменные объяви как extern. после этого они будут видны внутри всех функций и подключаемых файлах

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

Добавлено: Вс янв 02, 2011 12:18:25
ValBag
Для справки: появился CodeVision AVR 2.05.0

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

Добавлено: Вс янв 02, 2011 13:02:35
odesasha
А вот и ссылка : http://get-key.gen.in/1915-codevision-a ... rial-crack
Установил - пока работает .

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

Добавлено: Вс янв 02, 2011 13:13:32
ValBag
odesasha писал(а):А вот и ссылка : http://get-key.gen.in/1915-codevision-a ... rial-crack
Установил - пока работает .
Говорят, что дизассемблер стал внятный?

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

Добавлено: Вс янв 02, 2011 13:30:06
Apparatchik
odesasha писал(а):А вот и ссылка : http://get-key.gen.in/1915-codevision-a ... rial-crack
Установил - пока работает .
Avast 5.0.677 нашол в архиве "каку"!

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

Добавлено: Вс янв 02, 2011 13:44:26
ValBag
Apparatchik писал(а):Avast 5.0.677 нашол в архиве "каку"!
NOD32 молчит.

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

Добавлено: Вс янв 02, 2011 14:10:13
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]; то как потом мне в нем изменить значение элементов?

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

Добавлено: Вс янв 02, 2011 14:27:14
ValBag
Amstron писал(а): Далее создаю функцию:
Ну и где она?
Далее в оснвном цикле вывожу значение 5 элемента массива 279

indication_IND = a[5];

А у меня на дисплее отображается число 23 вместо 279!!! Не могу понять в чем тут дело!!!
Какой тип переменной indication_IND ?

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

Добавлено: Вс янв 02, 2011 14:38:10
Amstron
ValBag писал(а): Какой тип переменной indication_IND ?
unsigned int indication_IND;
РАЗОБРАЛСЯ!!! У меня сначало значение сохранялось в переменную unsigned char !

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

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