Hi
Bin schon einige Zeit dabei, mir mittels struct einen Datentyp zu bauen, Der meine CAN-Nachrichten/Teilnehmer aufnimmt.
Global erstelle ich, so mein Verständnis, den Datentyp CAN_NACHRICHT und deklariere auch gleiche eine Variable CAN_MSG dieses Typs.
struct CAN_NACHRICHT{
union id {
uint32_t _dword;
uint16_t _word[2];
uint8_t _byte[4];
};
union value {
uint64_t _ddword;
uint32_t _dword[2];
uint16_t _word[4];
uint8_t _byte[8];
};
uint32_t _timestamp;
} CAN_MSG;
Global kann ich hier keine Daten eintragen, dort bekomme ich die Fehlermelung
'CAN_MSG' does not name a type
Nach einigen Runden Try&Error fand ich heraus, daß ich z.B. in setup(); der Variable durchaus Werte zuordnen kann.
Die gleiche Zeile in setup(); wird klaglos geschluckt :).
Aber ich bekomme keine Daten in die per union aufgesplitteten 'Bereiche' rein.
Bei
CAN_MSG.id._byte[0]=0;
bekomme ich
invalid use of 'union CAN_NACHRICHT::id'
.
Ich verstehe nicht, was ich hier falsch mache.
Weiß hier Jemand mehr oder kann mein Code-Stück soweit umstricken, daß ich hier was eingetragen bekomme?
MfG