Hallo, ich bekomme meinen MAX1138 nicht zum Laufen. (http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3270/t/al) Ich habe einen ATmega2560 und nutze die I²C-Library von Peter Fleury. (http://www.jump.to/fleury) Mein CMPS03-Kompass funktioniert über I²C auch problemlos, aber sobald ich etwas an das IC schreiben will, bleibt er in der while hängen: unsigned char i2c_write(unsigned char data) { uint8_t twst; /* send data to the previously addressed device */ TWDR = data; TWCR = (1 << TWINT) | (1 << TWEN); /* wait until transmission completed */ while(!(TWCR & (1 << TWINT))); // <----------------------------- /* check value of TWI Status Register. Mask prescaler bits */ twst = TW_STATUS & 0xF8; if(twst != TW_MT_DATA_ACK) return 1; return 0; } /* i2c_write */ Ich habe schon andere Pull-Ups und eine andere Frequenz versucht, aber es hilft alles nichts. Ich bin noch ein Einsteiger und ärgere mich mit dem Teil schon seit ein paar Wochen rum. Ich bin für jede Hilfe dankbar. Gruß Jonas
Hast du denn erst eine Adresse auf den Bus gelegt? Also erst Start-Condition, dann Adresse senden, und dann erst schreiben.
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.