|
|
  |
Битовые поля и указатели |
|
|
|
Jan 28 2016, 12:16
|
Местный
  
Группа: Участник
Сообщений: 280
Регистрация: 2-11-08
Пользователь №: 41 333

|
Цитата(zltigo @ Jan 28 2016, 15:03)  Разумеетя передают указатель на стуктуру Хорошо передам я указатель на структуру &system. Как потом в функции мне присвоить битовому полю структуры onoff 0 или 1?
|
|
|
|
|
Jan 28 2016, 12:30
|
Местный
  
Группа: Участник
Сообщений: 326
Регистрация: 30-05-06
Пользователь №: 17 602

|
Цитата(sidy @ Jan 28 2016, 15:16)  Хорошо передам я указатель на структуру &system. Как потом в функции мне присвоить битовому полю структуры onoff 0 или 1? Примерно так CODE struct FlashProg_t { uint8_t ind; uint8_t desc; uint8_t __code *descriptor; uint8_t (*flInit)(void); uint8_t (*flUnProtect)(void); uint8_t (*flRead)(void); uint8_t (*flErase)(void); uint8_t (*flWrite)(void); uint8_t (*flVerify)(void); uint8_t (*flProtect)(void); uint8_t (*flExit)(void); }; void printFlashHelp(void) { uint8_t i; __code struct FlashProg_t* Fun; union { uint8_t *a8; uint16_t *a16; uint16_t d16; } aFun; printf("\n\r"); printf(" H - HELP\n"); aFun.d16 = FUNCROM; for(i=0; i < MAX_USER_PROGRAM; i++) { // printf("Check adr %04X %04X\n",aFun.d16,*aFun.a16); Fun = (__code struct FlashProg_t*)(*aFun.a16); if(*aFun.a8 != 0xFF) { printf("%c - %s\n",Fun->ind,Fun->descriptor); }; aFun.a8 += 3; } printf(" Q - QUIT\n"); } Через Fun->descriptor .
Сообщение отредактировал Herz - Feb 3 2016, 16:25
|
|
|
|
|
Feb 3 2016, 17:04
|

Местный
  
Группа: Участник
Сообщений: 329
Регистрация: 23-04-14
Пользователь №: 81 502

|
Цитата(zltigo @ Feb 3 2016, 16:56)  Какая такая маска??? Вы вообще о чем? Да эти дятлы, небось делали следущее: CODE
blockcontrol control;
((uint16)control) |= 0x00010002;
if(control.enable5) {...}
|
|
|
|
|
Feb 3 2016, 17:21
|
Местный
  
Группа: Участник
Сообщений: 280
Регистрация: 2-11-08
Пользователь №: 41 333

|
Цитата(CrimsonPig @ Feb 3 2016, 20:04)  Да эти дятлы, небось делали следущее: CODE
blockcontrol control;
((uint16)control) |= 0x00010002;
if(control.enable5) {...}
Да было сделано примерно так. Вот теперь разгребаю, мучаюсь...
|
|
|
|
|
Feb 3 2016, 18:22
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (sidy @ Feb 3 2016, 19:21)  Да было сделано примерно так. Вот теперь разгребаю, мучаюсь... struct{ uint8_t enable :1; uint8_t disable :1; } blockcontrol[8]; if( !blockcontrol[5].disable ) blockcontrol[5].enable = TRUE; И Вы, это самое..... почитайте что-нибудь хотя-бы их самых языковых основ а то как бы из "разгребания" не получилось перемешивание.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|