Frage 12 Bit ADC 8CH mit I²C

Du empfängst 2 bytes byte1 und byte2 in dem "8Bit" in dem 2 Byte sind ja auch 8Bit wobei die letzen 4Bit deines Wertes an den ersten 4 STellen stehen also verscheibt du die ersten 4 Bits um 4 stellen nach "rechts" also in richtung Leat Bit und deine anderen 8 Bit kommen dann vorne dran und dann hast du eine 12 Bit so macht das doe Finktion mal ganz simpel ausgedrückt :slight_smile:

byte b1 = Wire.receive(); <== erstes Byte mit den ersten 8Bit
byte b2 = Wire.receive() >> 4; <== zweites Byte mit den restelichen 4 Bit an den ersten 4 Sellen mit >> 4 um 4 Positionen nach rechst "geshiftet"
long data = (b1 << 4) | (b2 & 0x0F); <== im long das erste byte speichen um 4 nach links verschieben Also position bit12--->bit5 | und dann die fehlenden 4 Bit dazu :slight_smile: