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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.