реклама на сайте
подробности

 
 
> Вопрос новичка, Преобразование в 2-10 код
Anjey_N
сообщение Apr 14 2007, 16:24
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 12-01-07
Из: Энергодар Украина
Пользователь №: 24 374



Есть два 10-разрядных двоичных слова, полученных после преобразований АЦП по двум аналоговым каналам.
Необходимо преобразовать 2-й код в 2-10 код и результат поместить в 8 злементный масив.
Например
array[0]=v0
array[1]=v1
array[2]=v2
array[3]=v3
array[4]=i0
array[5]=i1
array[6]=12
array[7]=13
где v и i- значения 2-10 кода


Подскажите, как лучше это написать на языке Си!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Stas633
сообщение Apr 15 2007, 00:19
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 6-01-06
Пользователь №: 12 901



Цитата(Anjey_N @ Apr 14 2007, 17:24) *
Есть два 10-разрядных двоичных слова, полученных после преобразований АЦП по двум аналоговым каналам.
Необходимо преобразовать 2-й код в 2-10 код и результат поместить в 8 злементный масив.
Например
array[0]=v0
array[1]=v1
array[2]=v2
array[3]=v3
array[4]=i0
array[5]=i1
array[6]=12
array[7]=13
где v и i- значения 2-10 кода
Подскажите, как лучше это написать на языке Си!


....
например так:

Код
v=АЦП/10;  //число десятков
i=АЦП%10; //число единиц
v<<=4;
РЕЗУЛЬТ=v+i;


нужно ли размещать "РЕЗУЛЬТ" (побитно!!!?? blink.gif ) в массиве "array" решите сами...
Go to the top of the page
 
+Quote Post
Stas633
сообщение Apr 15 2007, 02:33
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 6-01-06
Пользователь №: 12 901



Цитата(Stas633 @ Apr 15 2007, 01:19) *
....
например так:

Код
v=АЦП/10;  //число десятков
i=АЦП%10; //число единиц
v<<=4;
РЕЗУЛЬТ=v+i;


нужно ли размещать "РЕЗУЛЬТ" (побитно!!!?? blink.gif ) в массиве "array" решите сами...


Это не правильно.. Извините, не понял сразу вопрос...
должно было бы быть так:
...
Код
array[0]=АЦП1%10; //v0
АЦП1=АЦП1/10;
array[1]=АЦП1%10; //v1
АЦП1=АЦП1/10;
array[2]=АЦП1%10; //v2
array[3]=АЦП1/10;  //v3  

array[4]=АЦП2%10; //i0
АЦП2=АЦП2/10;
array[5]=АЦП2%10; //i1
АЦП2=АЦП2/10;
array[6]=АЦП2%10; //i2
array[7]=АЦП2/10;   //i3


... это только один из возможных, причем не самый лучший, вариант.

...если вы "сделаете" массив "array" двумерным (array[НомАЦП][j]), то решение Вашей задачи можно будет записать короче и понятнее.

Код
void ВАШАФУНКЦ (unsigned int АЦП, char n) // где n - это номер канала АЦП, а АЦП - 10-битное значение
{
   char i;
   for(i=0;i<=2;i++)
   {
      array[n][i]=АЦП%10;
      АЦП/=10;
    }
   array[n][3]=АЦП1/10;
}
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 13:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01307 секунд с 7
ELECTRONIX ©2004-2016