www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik TWI atmel, Verständisfrage zu SLA_R/W


Autor: Harald18 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Otto (tarzanwiejane)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Harald18 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Otto (tarzanwiejane)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das ist keine Frage des Programmierstils... Das ist einfach eine nicht 
beantwortete Definitionsfrage. 8-)

cu Tarzanwiejane

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.