Als Adresse habe ich ihm die 0 gesetzt. Ich habe nun folgendes kleine Testprogramm geschrieben, über das eine LED, die an Datenpin1 des PCF8574 angeschlossen ist, angesteuert werden soll. Eigentlich sollte die LED alle 0,5 Sekunden ein bzw. ausgeschaltet werden, also blinken.
Bei dem PCF8574 handelt es sich um einen Chip des Typs A. Insgesamt sollte sich als Adresse zum Schreiben des Chips also die 112 ergeben.
Trotzdem funktioniert das folgende Programm nicht. Bereits der Aufruf zum Starten des IIC liefert den Wert 0 zurück, wenn ich ihn abfrage. Eigentlich müsste dort doch aber 8 geliefert werden.
Kann ich den PCF8574 evtl. nicht direkt verbinden? Brauche ich noch soetwas wie einen IIC-Controller?
Code: Select all
CHAR buffer[9];
//ReportID
buffer[0] = 1;
//IIC - Aktivieren
buffer[1] = 1;
buffer[2] = 0;
buffer[3] = 0;
buffer[4] = 0;
buffer[5] = 0;
buffer[6] = 0;
buffer[7] = 0;
buffer[8] = 0;
cout << IowKitWrite(p_interface, 1, buffer, sizeof(buffer));
while (true)
{
if ( buffer[4] == 0 )
{
buffer[4] = 255;
}
else
{
buffer[4] = 0;
}
//Message mit 2 Datenbytes
buffer[1] = 2;
//Start-Condition + 2 Folgebytes
buffer[2] = 194;
buffer[3] = 112;
// buffer[4] = 0;
buffer[5] = 0;
buffer[6] = 0;
buffer[7] = 0;
buffer[8] = 0;
IowKitWrite(p_interface, 1, buffer, sizeof(buffer));
Sleep(500);
}