Forum: Compiler & IDEs ds1621 i2c auslesen


von fabian (Gast)


Lesenswert?

hallo zusammen,

versuche einen ds1621 auszulesen, was mich leider vor ein problem 
stellt, denn ich kann mit den daten die ich auslese nichts anfangen bzw. 
glaube, dass sie falsch sind.

mein programm zum auslesen der temp.:

/*START CONVERT*/

    i2c_start();
    i2c_write( 0x90 ); // control byte write
    i2c_write( 0xEE ); // Start convert
    i2c_stop();



    /*READ FROM 2BYTE REG*/


    i2c_start();
        i2c_write( 0x90 ); // control byte write
        i2c_write( 0xAA ); //cmd temp auslesen
        i2c_start();
        i2c_write( 0x91 ); // control byte read

        i2c_read(); // read 1. byte
        temp[0]=i2c_read; //MSB

        i2c_ack(); // master ack

        i2c_read(); //read  2. byte
        temp[1]=i2c_read; //LSB

        i2c_nack(); // master nack

        i2c_stop();



    EA=1;
    puts("MSB");
    printf("Temp: %X.\n",temp[0]);

    puts("LSB");
    printf("Temp: %X.\n",temp[1]);

also wenn mir wer helfen könnte wär ich ihm sehr verbunden....

lg

fabian

von Martin Schneider (Gast)


Lesenswert?

Bevor gar keine Antwort kommt:

WAS kriegst du denn? Garnix? Unerwartetes?

Vom bloßen Drüberschauen sieht dein Programmstück ja ganz gut aus
(allerdings bin ich zu faul, das Datenblatt nach den rechten
Folgen durchzuschauen - das solltest du schon getan haben).
Ohne detailliertere Angaben über die eingesetzte I2C-Library
kann ich aber auch nix sagen.

Ist denn die Hardware O.K.? stimmt das Signalspiel auf dem I2C-Bus?

Ahoi, Martin

von Martin Schneider (Gast)


Lesenswert?

Ach ja: das ist so unklar:

        i2c_read(); //read  2. byte
        temp[1]=i2c_read; //LSB

ich würde eher sowas erwarten:

        temp[1]=i2c_read(); //LSB


Ahoi, Martin

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.