DS1621 per I2C ansteuern

Gast #74909
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
Gast #74911
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

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