[an error occurred while processing this directive]
Первый пример:
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Jolik 13 марта 2004 г. 01:26
В ответ на: Так конкретнее давай. В глюко-копилку общую! отправлено SM 12 марта 2004 г. 21:28

Но похоже тут я лохонулся - поэтому скорее это вопрос:
Есть структура - из канала приходит блок данных - когда я его копирую в структуру - происходят интересные вещи - слова превращаются в байты. Судя по spru281d должно быть наоборот - char занимать два байта. Непонятно. Значит так делать в CCS нельзя?

typedef struct {
char syncro_byte;
int PID;
char type;
int pos;
int size;
} TRSBlockHeader;

int i;

static TRSBlockHeader rsb; // структура

static unsigned char rsblock[10]; // данные из канала

rsblock[0] = 'G'; // заполняем сами
rsblock[1] = 3;
rsblock[2] = 0;
rsblock[3] = 1;
rsblock[4] = 0xBB;
rsblock[5] = 0;
rsblock[6] = 0xCC;
rsblock[7] = 0;

i = sizeof(rsb); // компилер выдает 5 байт (!) - размер структуры

memcpy(&rsb, rsblock, sizeof(rsb));

i = rsb.type; // = 0
i = rsb.pos; // = 1
i = rsb.size; // = 0xBB


Как минимум странно :(((

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru