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