Kein Problem, ich übersehe auch öfters was
Wie Du schon richtig erkannt hast, ist meine EE_Address kein 8 Bit sondern ein 16 Bit Wert. und stellt eine EEPROM Adresse dar für den Chip 24LC16. Dieser hat 16384 Bits bzw. 2048 Bytes also maximale EEPROM Adresse ist 0x07FF. Das Datenblatt gibt nun an, daß ich 3 obersten Bits
an die Bitposition 1..3 schreiben muss. Das LSB (Bit 0) soll 0 sein zum Schreiben.
Dazu schiebe ich den 16 Bit Wert meiner EEPROM Adresse 8 mal nach rechts. Nun bleiben nur noch die obersten 3 Adressbits Bit 8,9 und 10 übrig. Bit 0 bis 7 sind verschwunden. Wenn ich jetzt einmal nach links zurück schiebe befinden sich meine 3 obersten Adressbits wie gewünscht an Bitposition 1..3. Bit 0 ist nun gelöscht. Das funktioniert auch alles einwandfrei.
Mich würde nur interessiren, ob der Compiler diese "Arie" wegoptimieren darf (könnte). Dann würde mein Ergebnis unter Umständen nicht stimmen, das Bit 0 wäre dann das Bit 7 der EEPROM Adresse.
Wie Du selbst schon erkannt hast, kann ich auch 7 mal schieben und dann mittels AND das letzte Bit löschen. Mich würd nur interessiren darf er oder darf er nicht optimieren.
Danke Dir trotzdem, daß Du es Dir angesehn hast.
Die Frage ist also noch offen.
Siro