Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2016, 08:34   #11
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от dima040891 Посмотреть сообщение
Отправка данных производится специальной функцией которой надо указать на массив с данными типа uint8_t, поэтому то и встал вопрос как данные из uint16_t преобразовать в uint8_t.
Приведением типа указателя.
uint16_t var = 123;
write_uint8_t_array((uint8_t*) &var, sizeof(var));

Либо можете посмотреть на union.

Кстати, что вы будете делать с полученными данными?
Сдвигаете вправо по условию а как будете потом двигать влево?
waleri вне форума Ответить с цитированием
Старый 23.05.2016, 06:53   #12
dima040891
Пользователь
 
Регистрация: 22.05.2013
Сообщений: 21
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Приведением типа указателя.
uint16_t var = 123;
write_uint8_t_array((uint8_t*) &var, sizeof(var));

Либо можете посмотреть на union.

Кстати, что вы будете делать с полученными данными?
Сдвигаете вправо по условию а как будете потом двигать влево?

Приведением типа указателя.
uint16_t var = 123;
write_uint8_t_array((uint8_t*) &var, sizeof(var));

С этим буду разбираться сейчас, не знал вроде.

Кстати, что вы будете делать с полученными данными?
Сдвигаете вправо по условию а как будете потом двигать влево?

На микроконтроллере размер каждого измерения 2 байта выравнивание по левому краю, т.е. максимально измеренное значение будет 1111 1111 11110000 что советует 4095. Если отброшу младший байт то потеряю 4 МЗР, пока допустимо. А На ПК уже ничего не двигаю, просто максимальное измеренное значение соответствует 255 а не 4095, я это как бы учитываю и мирюсь с этим(Естественно что все соотношения сохраняются 255-макс. напряжение 127 половина и так далее). КАк то так)) Я так понял waleri вы это хотели выяснить в своих вопросах
dima040891 вне форума Ответить с цитированием
Старый 23.05.2016, 09:25   #13
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Да не, мне все понятно, а кроме того, что сдвинуты не все данные - как вы будете отличать что сдвинуто, а что нет?
waleri вне форума Ответить с цитированием
Старый 25.05.2016, 01:36   #14
dima040891
Пользователь
 
Регистрация: 22.05.2013
Сообщений: 21
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Да не, мне все понятно, а кроме того, что сдвинуты не все данные - как вы будете отличать что сдвинуто, а что нет?
Никак

Когда писал на форуме ошибся
Должно быть так:

for(int i=0; i<64; i++) //Перебирается весь массив для перезаписи в один байт из двух
{
Sh = BufADC[i];
shortADC[i] =(Sh>>8); // Сдвиг вправо на 8 бит
}

Спасибо!
dima040891 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Машина Поста (Если количество меток в массиве кратно трем, то стереть метки в этом массиве через одну, иначе стереть весь массив) ksesh Помощь студентам 0 21.03.2015 12:21
Преобразование часов в числа, а так же преобразование время PeMeHb Microsoft Office Excel 5 19.10.2014 17:04
В массиве поставить вначале все четные, а затем все нечетные цифры в массиве (Написать программу в коде делфи) Murfik97 Помощь студентам 4 26.11.2013 21:26
Преобразование в С++ Davlet M Помощь студентам 3 03.10.2009 14:30