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

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

Сообщение 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;
};


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

Сообщение uk8amk »

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

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

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

Сообщение 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
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

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

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

Сообщение 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»