Gast
#531864
Hallo zusammen, ich versuche derzeit (bisher vergeblich), den AD-Wandler PCF 8591 mit einem Atmega32 auszulesen. Verbindung zwischen µC und PC ist über USB vorhanden, so können die Werte direkt weitergesendet werden. i2c_init(); i2c_start(0x90); i2c_write(0x04); i2c_stop(); i2c_start(0x91); i=i2c_readNak; send(i); Das ist mein Code. Die Initialisisierung und Addressierung funktioniert, die Rückgabewerte der Funktionen bestätigen das (Ich benutze die I2C Master library von Peter Fleury). Was nicht funktioniert, ist das Lesen vom AD-Wandler. Folgende Beobachtung habe ich gemacht: Wenn ich den AD-Wandler (wie oben) mit der Funktion i2c_readNak (Einmaliges Auslesen, danach Stopbedingung) auslese, kommt immer 5F als Wert zurück. Benutze ich die Funktion ic2_readAck wird immer der Wert 71 gesendet. Und wenn ich als dritte Möglichkeit nicht den Rückgabewert der Funktion als gewandelten Wert auslese sondern direkt das TWDR-Register, bekomme ich 00 als Wert. Hat irgendjemand eine Idee, wo ich nach meinem Fehler suchen könnte? Bin leider ziemlich ratlos und weiß nicht, was ich noch abklopfen könnte. Die Beschaltung habe ich angehängt, ist ein wenig unübersichtlich aber ich denke, man kann das Wesentliche erkennen.
