I2C-AVR300 verstehen

OP #2640640
Hallo,

habe Verständnisprobleme bei der Anwendung der ATMEL AVR300 
Assemblerroutine für die Ansteuerung eines Port-Expanders.
Im AVR300 Dokument wird grundsätzlich nur mit DDRD.Bit geschaltet
Bsp:
" TWI_rep_start:
  sbi  DDRx,SCLP    ; force SCL low
  cbi  DDRx,SDAP    ; release SDA
  rcall  TWI_hp_delay    ; half period delay
  cbi  DDRx,SCLP    ; release SCL
  rcall  TWI_qp_delay    ; quarter period delay "

Das gilt sowohl für die SCL Leitung als auch die Datenleitung SDA.
Bisher war ich davon ausgegangen, dass der Portpin nur mit sbi/cbi 
Portx,SCL, während DDRx=H (Ausgang) ist, geschaltet wird.

Kann mir da jemand zum Verständnis verhelfen???

mfG
frewer
#2640650
Alle Teilnehmer am i2c schalten nur um zwischen low und einem Tri-State 
(für den log. 1 Zustand). Der High Pegel wird dabei durch die (externen) 
Pullups erzeugt. Daher steht das Datenregister ständig auf 0 und der 
gewünschte Zustand wird über das DDRx erzeugt.
OP #2641313
Danke Heiko für die einfache Erklärung. Bin da selbst einfach nicht 
draufgekommen, weil ich stets davon ausging, dass DDRx nur für die 
Umschaltung Eingang/Ausgang eingesetzt werden kann. Aber es ist jetzt 
klar, dass bei Portx=L mittels DDRx zwischen Tristate und 0 geschaltet 
wird.

merci
frewer

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 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.