Hallo modtronic.
0x12 und 0x13 sind richtig nach einem Reset, ohne Manipulation des BANK-Bits (ich schrieb bereits darüber), ist also OK nach PowerUp.
Die selben Register kannst du im Ziel-/Output-IC auch beschreiben. Die Werte werden aber in die OLATx-Register geschrieben, die Output LATches.
"Richtiger" wäre es, die OLATx direkt zu beschreiben, macht aber nix.
Oh ja, die liebe Adressverwirrung bei
I2C in der Praxis dank des separat betrachteten r/W-Bits
(
Inklusive des R/W-Bits muss aus Controllerperspektive als Control Byte zur Schreibadressierung eine 0x40 und zur Leseadressierung eine 0x41 in das Senderegister des Controllers geschrieben werden, wenn alle Adresspins LOW sind.- so kenne ich das zumindest.
Wenn alle Adresspins HIGH sind, müssen das entsprechend 0x4E und Leseadresse 0x4F sein.
In meinem Datenblatt ist das in Kap. 1.4 "Hardware Address Decoder" aufgezeichnet. Daran sollte man es eigentlich erkennen können. Mag sein, dass manche Library die Unterscheidung zwischen Adresse und Control Byte nachvollzieht; dann wären die Adressen eben 0x20 (Adr. LLL) und 0x27 (Adr. HHH). (letztere Betrachtungsweise finde ich irreführend, wiel ich bei
0x'
irgendwas' eben an
8-Bit-Einheiten denke.)
Setz dich wirklich damit auseinander, damit du das unter die Füße kriegst. Wenn's doch nicht klarer wird, frag nochmal nach.
Lesezeichen