Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Сначала выбрать 16-битное слово tempword=DataBuffer[bitaddress/16] - в нем будут ВСЕ нужные биты, а потом сдвинуть это слово на 8 минус остаток от деления битового адреса на 8: OUT=(char)(tempword >> (8-bitaddress%8))
Отправлено
MBedder
(80.92.96.19)
13 января 2011, г. 00:26
В ответ на:
Подскажите как 8-bit MCU обрабатывать длинные последовательности и выбирать определённые данные по маске?
отправлено
ZoltriX
12 января 2011, г. 23:42
Составить ответ
|
Вернуться на конференцию
Ответы
Так! Вот это уже трезвые мысли пошли!! Чувствую это правильно, но не соображу как написать
-
ZoltriX
(13.01.2011, 00:39:38
72.167.183.33
,
пустое
)
Как выбрать это 16-битное слово, ведь это уже 2 ячейки надо копировать в одну и как понять начиная с какой
-
ZoltriX
(13.01.2011, 00:41:38
72.167.183.33
,
пустое
)
Забудь слово "ячейки" навсегда. Я тебе выше дал полностью готовый код
-
MBedder
(13.01.2011, 00:50:30
80.92.96.19
,
пустое
)
Так буфер 8-битный, как копируя из него я получаю уже 16 разрядное слово??
-
ZoltriX
(13.01.2011, 01:14:48
72.167.183.33
,
пустое
)
Хоть из двух байт его слепи, хоть union используй - это азы
-
MBedder
(13.01.2011, 01:42:39
80.92.96.19
,
пустое
)
Вот накалякал начало исходника, которое делает этот массив... (внутри)
-
ZoltriX
(13.01.2011, 01:49:14
72.167.183.33
, 1066 байт)
Точнее 1 строчка --- if (Index_bit>8) {Index_bit = 1; Index_byte++; DATA_Buffer[Index_byte] = Temp_Byte; Temp_Byte = 0; };
-
ZoltriX
(13.01.2011, 01:52:3
72.167.183.33
,
пустое
)
Может всё-таки проще объявить bit DATA_Buffer[256]; а пускай компилятор единичные биты по байтам сам раскладывает?
-
ZoltriX
(13.01.2011, 02:04:18
72.167.183.33
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 654:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru