Структуры и обединения данных в Keil

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
FUZZY_
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Структуры и обединения данных в Keil

Сообщение FUZZY_ »

Ниже приведена часть кода C++ определяющая структуру и обединение работающего на i286 как заставить работать этот код под Keil




// Структура времени в микросхеме

struct _H10_{
unsigned char H_10:2;
unsigned char PM_AM:2 ; //PM -1 AM -0
};

//----------
struct _Cd_ {
unsigned char HOLD:1;
unsigned char BUSY:1; // only read
unsigned char IRQ_F:1;
unsigned char _30sec_adj:1;
};
//----------

//----------
struct _Ce_ {
unsigned char MASK:1;
unsigned char ITRPT_STND:1;
unsigned char t0:1;
unsigned char t1:1;
};
//----------

//----------
struct _Cf_ {
unsigned char REST:1;
unsigned char STOP:1;
unsigned char T24_12:1;
unsigned char TEST:1;
};
//----------


struct time_M6243B {
unsigned char S_1:4 ; //
unsigned char S_10:4 ;
unsigned char MI_1:4 ;
unsigned char MI_10:4 ;
unsigned char H_1:4 ;


union H10 {
struct _H10_;
unsigned char H10:4; <- тут выдает ошибки : ;
};

unsigned char D_1:4;
unsigned char D_10:4;
unsigned char MO_1:4;
unsigned char MO_10:4;
unsigned char Y_1:4;
unsigned char Y_10:4;
unsigned char W:4; //0 неделя 1 - понедельник


union Cd{ <- тут выдает ошибки : ;
struct _Cd_;
unsigned char Cd:4;
};


union Ce{ <- тут выдает ошибки : ;
struct _Ce_;
unsigned char Ce:4;
};

union Cf{ <- тут выдает ошибки : ;
struct _Cf_;
unsigned char Cf:4;
};


};
//----------
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: Структуры и обединения данных в Keil

Сообщение uk8amk »

Битовое поле является частью описания структуры.
Напишите просто

Код: Выделить всё

union H10 { 
struct _H10_;
unsigned char H10;
};

В противном случае надо создать структуру H10.
FUZZY_
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Re: Структуры и обединения данных в Keil

Сообщение FUZZY_ »

Ничего не получилось

Вот кусок

37 struct time_M6243B {
38 unsigned char S_1:4 ; //
39 unsigned char S_10:4 ;
40 unsigned char MI_1:4 ;
41 unsigned char MI_10:4 ;
42 unsigned char H_1:4 ;
43
44
45 union H10 {
46 struct _H10_;
47 unsigned char H10:4;
48 };


assembling STARTUP.A51...
compiling main.c...
TC_M6242.h(46): error C141: syntax error near ';'
TC_M6242.h(48): error C141: syntax error near '}'
TC_M6242.h(50): error C129: missing ';' before ':'
Target not created
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Структуры и обединения данных в Keil

Сообщение Аlex »

Открывающиеся скобки есть, закрывающихся нет. Так и должно быть ?
FUZZY_
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Re: Структуры и обединения данных в Keil

Сообщение FUZZY_ »

Аlex писал(а):Открывающиеся скобки есть, закрывающихся нет. Так и должно быть ?

Все получилось - пример кода:// Структура времени в микросхеме

struct t_H10_{
unsigned char H_10:2;
unsigned char PM_AM:2 ; //PM -1 AM -0
};



union mmH10 {struct t_H10_ _H10_; //создали структуру
unsigned char H10:4;
};


typedef union mmH10 mH10;


//----------
struct t_Cd_ {
unsigned char HOLD:1;
unsigned char BUSY:1; // only read
unsigned char IRQ_F:1;
unsigned char _30sec_adj:1;
};


union mmCd{
struct t_Cd_ _Cd_;
unsigned char Cd:4;
};


typedef union mmCd mCd;
//----------

//----------
struct t_Ce_ {
unsigned char MASK:1;
unsigned char ITRPT_STND:1;
unsigned char t0:1;
unsigned char t1:1;
};


union mmCe{
struct t_Ce_ _Ce_;
unsigned char Ce:4;
};

typedef union mmCe mCe;
//----------


//----------

//----------
struct t_Cf_ {
unsigned char REST:1;
unsigned char STOP:1;
unsigned char T24_12:1;
unsigned char TEST:1;
};


union mmCf{
struct t_Cf_ _Cf_;
unsigned char Cf:4;
};

typedef union mmCf mCf;


//----------


struct time_M6243B{
unsigned char S_1:4 ; //
unsigned char S_10:4 ;
unsigned char MI_1:4 ;
unsigned char MI_10:4 ;
unsigned char H_1:4 ;



//

mH10 H10; //создали структуру



unsigned char D_1:4;
unsigned char D_10:4;
unsigned char MO_1:4;
unsigned char MO_10:4;
unsigned char Y_1:4;
unsigned char Y_10:4;
unsigned char W:4; //0 неделя 1 - понедельник


//

mCd Cd; //создали структуру

//


mCe Ce; //создали структуру

//

mCf Cf; //создали структуру


};
//----------
Ответить

Вернуться в «ARM»