mikrocontroller.net

Forum: Compiler & IDEs DS1621 per I2C ansteuern


Autor: jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Zusammen,

habe mir i2cmaster zum programmieren einer I2C Verbindung
heruntergeladen. Mein Problem ist jetzt allerdings wie ich den DS1621
anspreche.

Anhand des Datenblattes hab ich mal folgenden Code generiert:

void main(void)
{
    outp(0xff, DDRC);  //Port C = Output
    outp(0xff, DDRD);  //Port D = Input

    for(;;)
    {
        for (t=0; t<1023; t++)   /* outer delay loop */
        {
          for(j=0; j<511;j++) /* inner delay loop */
          {
              k++;            /* just do something - could also be a NOP
*/
          }
      }

  i2c_init();
  ret = i2c_start(DS1621+I2C_WRITE);       // set device address and
write mode
  if ( !ret )
        {
            i2c_write(0xAA); //Daten senden damit Temperatur gelesen
werden kann
          ret = i2c_rep_start(DS1621+I2C_READ);
          if ( !ret )
          {
        temp1 = i2c_readAck();
        temp2 = i2c_readAck();
        outp(low_digit(temp1), PORTC);
        outp(high_digit(temp1), PORTD);
          }
        }
        i2c_stop();
    }
}

Leider bekomme ich damit nicht das gewünschte Ergebnis hin. Ich bekomme
immer eine 3 zurück, und nicht die Temperatur.

Kann mir einer sagen was ich falsch mache bzw. was ich vergessen habe.

Danke schon mal im Voraus, der Jochen

Autor: jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso,

hab ich ganz vergessen
#define DS1621 0x90
Adresse des DS1621 is 0

Autor: jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also,

ich hab jetz vor der Messung mal noch ein 0xEE gesendet damit die
Messung überhaupt gestartet wird.

Nun hab ich noch das Problem das der werd nicht unter 24°C geht. Hab
aber am Anfang TL auf 0x0000 gesetzt.(Sollte also meiner Ansicht nach
auf 0°C runter gehen).

Vielleicht weis ja noch jemand Rat, sonst mussich halt das Datenblatt
noch mal komplett zerpflücken.

Der Jochen

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.