mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik I2C-Bus und DS1631


Autor: CJ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe eine ATmega8 und will damit über I2C einen Temperatursensor 
DS1631 ansteuern.
Hat damit irgendwer schon etwas gemacht, evtl. fertiger Assembler Code?
Ich habe ein Problem beim Auslesen der Temperatur über I2C. Ich weiß 
nicht genau, ob ich beim I2C das ACK-Bit beim Lesen selbst setzen muss, 
oder ob mir dass der ATmega8 selbstständig macht (ich verwende die 
integrierte TWI-Schnittstelle des ATmega)!

Initialisiert dürfte ich ich alles korrekt haben. Der Ablauf hängt aber 
in Schleife "read4"
;Temperatur einlesen
read_temp_ds1631:
    ldi  tmp1, (1<<TWINT) | (1<<TWSTA) | (1<<TWEN)
    out  TWCR, tmp1
read1:    in  tmp1, TWCR
    sbrs  tmp1, TWINT
    rjmp  read1
      
    ldi  tmp1, 0x91      ;HW-adresse
    out  TWDR, tmp1      
    ldi  tmp1, (1<<TWINT) | (1<<TWEN)    
    out  TWCR, tmp1
read2:    in  tmp1, TWCR
    sbrs  tmp1, TWINT
    rjmp  read2
      
    ldi  tmp1, 0xAA      ;Befehl zum Lesen der Temp
    out  TWDR, tmp1      
    ldi  tmp1, (1<<TWINT) | (1<<TWEN)    
    out  TWCR, tmp1
read3:    in  tmp1, TWCR
    sbrs  tmp1, TWINT
    rjmp  read3

    ldi  tmp1, (1<<TWINT) | (1<<TWEN)
    out  TWCR, tmp1
read4:    in  tmp1, TWCR
    sbrs  tmp1, TWINT
    rjmp  read4

    in  TH, TWDR      ;TH Daten auslesen

    ldi  tmp1, (1<<TWINT) | (1<<TWEN)    
    out  TWCR, tmp1
read5:    in  tmp1, TWCR
    sbrs  tmp1, TWINT
    rjmp  read5

    in  TL, TWDR      ;TL Daten auslesen

    ldi  tmp1, (1<<TWINT) | (1<<TWEA) | (1<<TWEN)
    out  TWCR, tmp1
read6:    in  tmp1, TWCR
    sbrs  tmp1, TWINT
    rjmp  read6
      
    ldi  tmp1, (1<<TWINT) | (1<<TWSTO) | (1<<TWEN)
    out  TWCR, tmp1

    ret


Vielen Dank für eure Hilfe!

Autor: horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo CJ,

vielleicht hilft dir diese fuer den DS1631 angepasste
Routine (von Joerg Wunsch) aus der avrgcc-doc,
deinen Fehler zu finden.

horst.

Autor: horst (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
anhang hat wieder mal nicht geklappt.

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.