TWI atmel, Verständisfrage zu SLA_R/W

Gast #966297
Lesenswert?

hallo,

zur zeit beschäftige ich mich mit der kommunikation zwischen 2 ICs bzw. 
Atmel-Controllern atMegax8.

ich habe mir auch schon dazu die Bibliothek ic2master von Peter Fleury 
runtergeladen.

Nun zu meinem Verständisproblem:

Man kann ja jedem Slave eine beliebige Adresse vergeben. Diese wird ja 
dann ins TWDR geschrieben mit der entsp. Operation (lesen oder 
schreiben).

// aus dem Quellcode von P.F
i2c_start_wait(Dev24C02+I2C_WRITE);     // set device address and write 
mode

// aus i2c_start(address)
// send device address
  TWDR = address;

wenn ich nun z.b einem Slave die Adresse 11 verpasse, so ist doch Bit 0 
immer 1. So wäre das doch dann immer im Lese-Modus!?

Ich habe da leider noch nix genaueres gefunden, wo das genauer 
beschrieben ist, mit dem SLA_R bzw. SLA_W.

Also meinen Verständis nach müsste man doch die Adresse um 1 nach links 
schieben und dann Bit 0 mit TW_READ oder TW_WRITE verodern. Dann wäre 
man doch von der gewählten Adresse unabhängig..
oder sehe ich irgendwie was falsch?

mfg
#966314
Lesenswert?

Hi Harald18,
die I2C Addresse ist eine 7 Bit Addresse. Fuer die Uebertragung haengt 
man je nach Lesen oder Schreiben noch ne 0 oder ne 1 hinten dran. So 
werden daraus dann 8 Bit. Nu macht man so leider die Verwirrung perfekt 
da viele einfach die 7 Bit Addresse gleich Links-Orientiert als 8Bit 
Wert als Addresse angeben und bei Bedarf das Schreibbit addieren. Da 
kannste nur wuerfeln/ausprobieren was mit einer dir zugeworfenen 
Addresse gemeint ist. Bei 0x11 ist eigentlich klar das es ne 7 Bit 
Addresse ist da das niederwertigste Bit schon gesetzt ist.

cu Tarzanwiejane
Gast #966494
Lesenswert?

hallo,

aja..danke für deine antwort.
also das find ich nicht grad den besten programmierstil! ist zwar ok, 
wenn man´s weiß, aber ansonsten aufm ersten blick eher schwer zu 
erkennen.

danke,
mfg

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren