I2C-AVR300 verstehen

OP #2640640
Lesenswert?

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
OP #2641313
Lesenswert?

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

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