|
типы данных С# (AVR Studio 6), работа с переменными разных типов |
|
|
|
Jul 13 2013, 18:20
|
Частый гость
 
Группа: Участник
Сообщений: 105
Регистрация: 9-09-11
Пользователь №: 67 080

|
День добрый. пользуюсь AVR Studio 6. возникла необходимость передать целое значение из переменной типа Float в переменную типа INT16. И наоборот передать значение переменной типа INT16 в переменную типа FLOAT. Раньше как-то это делал, но никак не могу вспомнить и найти не могу. P.S. И еще вопрос по AVR Studio 6 как выключить проверку орфографии в комментах. А то он все русские слова подчеркивает, достал.
|
|
|
|
|
Jul 13 2013, 19:24
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 15-01-09
Из: Moldova
Пользователь №: 43 421

|
Цитата(Navovvol @ Jul 13 2013, 21:20)  P.S. И еще вопрос по AVR Studio 6 как выключить проверку орфографии в комментах. А то он все русские слова подчеркивает, достал. В меню - VAssistX - Visual Assist X Options - Advasend - Underlines - убрать галочку на - Underlines spelling errors in comments .. -
|
|
|
|
|
Jul 15 2013, 15:30
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
а разве самый тупой способ не проходит? Код float source = 3.14; int dest = source; // здесь dest == 3; float dest2 = dest; // здесь dest2 = 3.0 и по поводу структур: Код typedef struct{ // тут что нужно } my_struct_type;
void foo(my_struct_type var); хотя более оптимально, наверное, будет передавать параметр в функцию по указателю Код void foo(my_struct_type *ptr);
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
|
Jul 16 2013, 07:36
|
Частый гость
 
Группа: Участник
Сообщений: 191
Регистрация: 18-09-12
Из: Орёл
Пользователь №: 73 591

|
А подскажите, какие типы по скорости бывают. К примеру, код: Код m_camera_byte <<= 1; m_lens_byte <<= 1; требует в AVR Studio5 на выполнение 40 тактов. Типы объявлял и как volatile unsigned char и как просто unsigned char. Почему-то компилятор упорно хранит из в ОЗУ. Пытался объявить их как register, компилятор ругается, что не знает такого типа.
|
|
|
|
|
Jul 16 2013, 07:58
|
Частый гость
 
Группа: Участник
Сообщений: 105
Регистрация: 9-09-11
Пользователь №: 67 080

|
Цитата(ARV @ Jul 15 2013, 19:30)  а разве самый тупой способ не проходит? Спс. Лучше конечно работать по указателям. У меня проблема была внутри самой функции. Путаница с "->" и "*". Привожу работоспособный пример: CODE typedef struct { int16_t INPUT; //Number to include in average int16_t CurIndex;// Position in Buf in which to store In int16_t BufSize; //Maximum number of elements to include in average int32_t Buf; // Array to store In values/ Not Array. Sum int16_t OUTPUT; //Calculation result bool Q; //Calculation completed flag }MovAve;
void Moving_Average(MovAve* AVERAGE)// функция Скользящего среднего. { if ((AVERAGE->CurIndex)<(AVERAGE->BufSize)) { AVERAGE->Buf+=AVERAGE->INPUT; AVERAGE->CurIndex++; AVERAGE->OUTPUT=(AVERAGE->Buf)/(AVERAGE->CurIndex); if (AVERAGE->CurIndex==(AVERAGE->BufSize)) { AVERAGE->CurIndex=0; AVERAGE->Buf=0; AVERAGE->Q=true; } else { AVERAGE->Q=false; } } } MovAve Sensor;
в цикле программы вызов функции: Код Moving_Average(&Sensor);
Сообщение отредактировал IgorKossak - Jul 16 2013, 08:22
Причина редактирования: избыточное цитирование
|
|
|
|
|
Jul 16 2013, 09:28
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
Цитата(vladimir_orl @ Jul 16 2013, 11:36)  А подскажите, какие типы по скорости бывают. К примеру, код: Код m_camera_byte <<= 1; m_lens_byte <<= 1; требует в AVR Studio5 на выполнение 40 тактов. Типы объявлял и как volatile unsigned char и как просто unsigned char. Почему-то компилятор упорно хранит из в ОЗУ. Пытался объявить их как register, компилятор ругается, что не знает такого типа. оптимизация включена? сдвиг любого чара на 1 бит 40 тактов не должен требовать.
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|