CodeVision AVR в вопросах и ответах
- Сериг
- Это не хвост, это антенна
- Сообщения: 1451
- Зарегистрирован: Пт фев 19, 2010 19:39:28
- Откуда: Москва
Re: CodeVision AVR в вопросах и ответах
ребят пытаюь вывести русские слова на лсиди 26x2 испольую рл плис и минус не работает так как цвавр ругается...че делать?
Re: CodeVision AVR в вопросах и ответах
Сериг писал(а):испольую рл плис и минус не работает так как цвавр ругается...че делать?
както так:
Код: Выделить всё
#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 в вопросах и ответах
ачуметь!Сериг писал(а):хм спасиб попробую хотя уже нет я девушке дисплей с признаниями подарил)))))))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сериг
- Это не хвост, это антенна
- Сообщения: 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 в вопросах и ответах
а я че? я ни че... 
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Apparatchik
- Держит паяльник хвостом
- Сообщения: 908
- Зарегистрирован: Вс май 23, 2010 13:55:42
- Откуда: Украина, Александрия
Re: CodeVision AVR в вопросах и ответах
Как в CodeVisionAVR возвратить из функции несколько значений?
Пробовал объявлять так хотел возвратить x1 и x2 но нехочет компилировать.
Можно ли возвращать сразу восемь значений?
Пробовал объявлять так
Код: Выделить всё
void sun (char sd, char sm, char sy, char la, char lo, char z, char &x1, char &x2);Можно ли возвращать сразу восемь значений?
«И всё-таки она вертится!»
Re: CodeVision AVR в вопросах и ответах
Вроде никак. Но можно возвратить ссылку на массив, или на структуру.
Еще можно объявить глобальные переменные, внутри функции им присвоить нужные значения, а где нужно использовать эти переменные.
Еще можно объявить глобальные переменные, внутри функции им присвоить нужные значения, а где нужно использовать эти переменные.
KIT
Re: CodeVision AVR в вопросах и ответах
Apparatchik, глянуть бы на код Вашей функции полностью, ато как то char &x1, char &x2 настораживает.
Не умееш - не берись, но не взявшись не научишся.
- avreal
- Опытный кот
- Сообщения: 842
- Зарегистрирован: Чт дек 31, 2009 19:27:45
- Откуда: Бровари, Україна
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
А что там смотреть. Это ж не С++, ссылочных типов нет. Это при передаче аргументов-адресов надо писать func( &x1, &x2), а при объявлении/определении функции - void func( int *px1,int *px2) и внутри функции *px1 = 5;
В языке С можно вернуть из функции структуру.
Но на мелких контроллерах это невыгодно по коду/стеку. Если структура, влазит в регистры, например, два байтовых значения, то компилятор в регистрах её и возвращает. А для больших структур в функцию foo() первым аргументом, до наших аргументов, передаётся указатель на структуру, в moo() на стеке заводится временная переменная some_data_t, в foo() передаётся указатель на неё, а после возврата результат переписывается в some_data.
Вроде бы какие-то компилятор передавали сразу указатель на some_data, но не уверен.
Поэтому лучше явно передавать указатель на структуру — это будет лучше и неявного указателя, и передачи восьми указателей на отдельные переменные.
В языке С можно вернуть из функции структуру.
Код: Выделить всё
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);
}Вроде бы какие-то компилятор передавали сразу указатель на some_data, но не уверен.
Поэтому лучше явно передавать указатель на структуру — это будет лучше и неявного указателя, и передачи восьми указателей на отдельные переменные.
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
- Apparatchik
- Держит паяльник хвостом
- Сообщения: 908
- Зарегистрирован: Вс май 23, 2010 13:55:42
- Откуда: Украина, Александрия
Re: CodeVision AVR в вопросах и ответах
O-LED писал(а):Еще можно объявить глобальные переменные, внутри функции им присвоить нужные значения, а где нужно использовать эти переменные.
Так наверно будет самое простое. Я просто хотел написать отдельный файл *.h чтоб потом подключать когда надо, но придётся всё делать в основном коде.
«И всё-таки она вертится!»
Re: CodeVision AVR в вопросах и ответах
ну так и сделай, просто во всех программах где будешь использовать эту недофункцию, используй одно и тоже имя "возвращаемых" переменных, а эти переменные объяви как extern. после этого они будут видны внутри всех функций и подключаемых файлах
KIT
Re: CodeVision AVR в вопросах и ответах
Для справки: появился CodeVision AVR 2.05.0
Re: CodeVision AVR в вопросах и ответах
А вот и ссылка : http://get-key.gen.in/1915-codevision-a ... rial-crack
Установил - пока работает .
Установил - пока работает .
Re: CodeVision AVR в вопросах и ответах
Говорят, что дизассемблер стал внятный?odesasha писал(а):А вот и ссылка : http://get-key.gen.in/1915-codevision-a ... rial-crack
Установил - пока работает .
- Apparatchik
- Держит паяльник хвостом
- Сообщения: 908
- Зарегистрирован: Вс май 23, 2010 13:55:42
- Откуда: Украина, Александрия
Re: CodeVision AVR в вопросах и ответах
odesasha писал(а):А вот и ссылка : http://get-key.gen.in/1915-codevision-a ... rial-crack
Установил - пока работает .
Avast 5.0.677 нашол в архиве "каку"!
«И всё-таки она вертится!»
Re: CodeVision AVR в вопросах и ответах
NOD32 молчит.Apparatchik писал(а):Avast 5.0.677 нашол в архиве "каку"!
Re: CodeVision AVR в вопросах и ответах
Помогите разобраться с массивом!
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]; то как потом мне в нем изменить значение элементов?
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 в вопросах и ответах
Ну и где она?Amstron писал(а):Далее создаю функцию:
Какой тип переменной indication_IND ?Далее в оснвном цикле вывожу значение 5 элемента массива 279
indication_IND = a[5];
А у меня на дисплее отображается число 23 вместо 279!!! Не могу понять в чем тут дело!!!
Re: CodeVision AVR в вопросах и ответах
ValBag писал(а):Какой тип переменной indication_IND ?
unsigned int indication_IND;
РАЗОБРАЛСЯ!!! У меня сначало значение сохранялось в переменную unsigned char !
ВОТ Я СТУПИЛ(((((
А с этим разобраться не поможите?
если я объявляю массив как flash unsigned int a[100]; то как потом мне в нем изменить значение элементов?
Смысл в том , что я хочу создать массив в энергонезависимой памяти. Потом измеить в нем значение элементов. У меня компиль CodeVisionAVR ругается если я значения меняю...