Hallo Leute
Ich habe ein Problem mit pointers und structs. Ich hoffe ihr könnt mir helfen. Die trial and error Methode hat auf jedenfalls nichts gebracht.
Also hier mein Code
Code:
typedef struct {
uint8_t mode;
uint8_t msg[4][3];
} mkb_t;
typedef struct{
mkb_t mkb[NUMBER_OF_MKB];
uint8_t adc[NUMBER_OF_ADC][2];
} preset_t;
preset_t preset1 EEMEM = {...};
preset_t preset2 EEMEM = {...};
preset_t preset3 EEMEM = {...};
/*
* Save Preset Mode
*/
uint8_t savePresetMode(uint8_t presetN, uint8_t buttonN, uint8_t newmode)
{
preset_t *p;
switch (presetN)
{
case 1:
p = &preset1;
break;
case 2:
p = &preset2;
break;
case 3:
p = &preset3;
break;
default:
return RETURN_CODE_ERROR;
}
if (eeprom_is_ready())
eeprom_write_byte(p->mkb[buttonN]->mode,newmode);
else
return RETURN_CODE_ERROR;
return RETURN_CODE_OK;
}
Das Problem ist die Zeile:
Code:
eeprom_write_byte(p->mkb[buttonN]->mode,newmode);
Die Referenz auf mode liefert ein Compiler Fehler.
Irgendwie blicke ich noch nicht ganz durch, was pointers und structs angeht.
Gruss und danke schonmal
Frédéric
Lesezeichen