PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PCF8591



War-Tux
08.06.2006, 14:05
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.



/***********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();
}


Ich denke irgendwas bei der Adressierung oder Timing..:/
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


/*************RÜCKGABE**************/
unsigned char adu_read()
{
i2c_write(0x9F);
adu_byte=i2c_read();
i2c_write(0);
return adu_byte; // Rückgabe von gelesen Wert
}

War-Tux
08.06.2006, 14:58
ok Problem gefunden ](*,)
das Protokoll erfordert eigene Start Stop Bediungen für jedes Commando Byte