Sehr spannende Frage
Aber allein die Klammer schützt dich nicht vor Optimierung. Wirklich sicher beantworten kann ich das aber nicht. Aber ich habe eine Alternative. Falls EE_Address ein uint8 ist:
Code:
LPC_I2C0DAT = EE_SLAVE_ADDRESS | ((EE_Address >> 7) & 0b11111110);
Würde das nicht auch gehen? Aber unabhängig davon interessiert es mich trotzdem was der Compiler daraus basteln darf.
Edit: EE_Adress wird kaum nur 8 Bit breit sein, sonst wäre nach dem schieben ja nichts mehr da Du brauchst jedenfalls eine Maske in geeigneter Bitbreite bei der nur das Bit0 eine 0 enthält
Noch mal Edit: Das hast du ja schon selber rausgefunden. Oh man, heute ist glaube ich nicht mein Tag. Sorry
Lesezeichen