War-Tux
08.06.2006, 15: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
}
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
}