Hallo
Ich habe hier von der Schule ein Testboard mit einem A/D Wandler PCF8591.
Schaffe es ihn aber nichtmal zu initalisieren. Bekomme immer -256 ausgelesen.
Ich denke irgendwas bei der Adressierung oder Timing..:/Code:/***********ADU INIT****************/ void adu_init(void) { unsigned char adress =0x9E; // Address Pins A0=1 A1=1 A2=1 unsigned char command=0x00; // Command Byte // Einstellungen i2c_start(); // I2C StartSequenz delay_5us(); // Kurze Wartezeit i2c_write(adress); // Baustein Addresierung delay_5us(); // Kurze Wartezeit delay_5us(); i2c_write(command); // Initialisierung D/A Aktiv A/D Channel 0 !´ i2c_write(0); // Acknowledge delay_5us(); }
Das hier ist rein die Init Routine.
gelesen wird dann einfach direkt nach diesem Aufruf mit i2c_read() einer Funktion von mir.
Die I²C Routinen sind eigentlich auch mittels EEPROM getestet und sollten funktionieren.
Finde den Fehler einfach nicht.
Edit
hier so lese ich
Code:/*************RÜCKGABE**************/ unsigned char adu_read() { i2c_write(0x9F); adu_byte=i2c_read(); i2c_write(0); return adu_byte; // Rückgabe von gelesen Wert }







Zitieren

Lesezeichen