PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PCF8574 funktioniert nur nicht beim Lesen, warum?



madangdive
05.01.2010, 21:03
Hallo!
Das Schreiben mit einem PCF8574 funktioniert schon!
Jedoch das Lesen bringe ich nicht zum Laufen, aber warum?
Verwende die Header-Datei von "http://jump.to/fleury" (i2cmaster.h)
Als Entwicklungsumg. nehme ich das AVR-Studio V14 und probiere mich in C!
Ich möchte einen Port einlesen und das eingelesene wieder ausgeben!
Bitte um Hilfe
Danke Mad!

#define READ_ADRESSE_1 0x41 // A0 GND --> A1 GND --> A2 GND
#define WRITE_ADRESSE_2 0x42 // A0 +5V --> A1 GND --> A2 GND

int main()
{

i2c_init(); //initialize I2C

uint8_t wert=0; // Für Lesen des PCF-Wertes

//lese aus PCF 8574 Modul

i2c_rep_start(READ_ADRESSE_1+I2C_READ); // set device address
wert = i2c_readNak();
i2c_stop();

//schreibe auf PCF 8574 Modul

i2c_start_wait(WRITE_ADRESSE_2+I2C_WRITE);
i2c_write(wert);
i2c_stop();

_delay_ms(2000);

PORTC = wert;
_delay_ms (1000);
PORTC = 0;
_delay_ms (1000);

mare_crisium
06.01.2010, 09:11
madangdive,

versuch's doch mal mit READ_ADRESSE_1 0x42. Die Adressen von I2C-Teilnehmern müssen immer gerade sein ;-). Bit0 der Adresse ist für das R/W-Bit reserviert.

mare_crisium

madangdive
06.01.2010, 11:43
super, danke das war es schon....
mad
ps: schön langsam macht es spass....dieses µP zeug's