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.