Gast
#3178898
Hallo zusammen, habe ein Problem und zwar habe ich einen Atmega168 mit 20Mhz an einen LM75 und dem EDIP240 über I2C hängen. Habe eine 100kHz SCL (auch mittels Oszi gemessen) Das Problem ist aber wenn ich den Atmega brenne schickt er mir genau 1 mal die Temperatur an das Display und dann nicht mehr. Muss noch dazu sagen dass es mit dem internen Oszillator mit 10kHz funktioniert hat. Theortisch sollte es ja auch funktionieren wenn ich beim 20Mhz Quarz und 10kHz SCL betreibe - Tut es aber nicht... habe damals nur eine kleine Pause für den LM75 angefügt und es hat funktioniert...hatte nämlich das selbe problem vorher auch aber jetzt bekomme ich es nicht mehr weg. void init_I2C () { TWBR = 23; TWSR = 1; } Ab hier ist die Temperatur abfrage! i2c_start (); i2c_senden (0x90); i2c_senden (0x00); i2c_start (); i2c_senden (0x91); //adresse lm75, + startbedingung temperatur = i2c_empfang(); //empfang erstes byte //temperatur = i2c_readNak(); LM75_temp = temperatur<<8; temperatur2 = i2c_empfang2(); //empfang 2tes byte * //temperatur2 = i2c_readAck(); LM75_temp |=temperatur2; i2c_stop(); //stopbedingung schicken wait_ms(150); mfg Scary