В общем идёт так:
В заголовке определяется:
static volatile __io struct
{
BYTE _P0:1, _P1:1, _P2:1, _P3:1, _P4:1, _P5:1, _P6:1, _P7:1;
} _PING @ 0x63;
Далее переопределяется в другом заголовке так:
#define ADCDOUT2_O _PORTG.P2
#define ADCDOUT2_I _PING.P2
#define ADCDOUT2_C _DDRG.P2
#define ADCDOUT2_M (1 << P2)
А используется в исходниках так
if(ADCDOUT0_I) _Bytes[0] |= 0x80;
if(ADCDOUT1_I) _Bytes[1] |= 0x80;
if(ADCDOUT2_I) _Bytes[2] |= 0x80;Цитата
Тогда проще по тексту программы убрать все эти убогие подчёркивания. ИМХО.
Ну вот я и попробовал сделать так:
#define ADCDOUT2_O PORTG.P2
#define ADCDOUT2_I PING.P2
#define ADCDOUT2_C DDRG.P2
#define ADCDOUT2_M (1 << P2)Но компилятор засыпал ошибками на таких условиях
if(ADCDOUT2_I) _Bytes[2] |= 0x80;Error[Pe133]: expected a member name D:\WORK\PROJECTS\KP01\CybVe_newIAR\TAD7714.cpp 28
Сообщение отредактировал cyb - Sep 16 2011, 09:39