TWI atmel, Verständisfrage zu SLA_R/W

Gast #966297
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
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
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

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.