Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > Hallo. > > Ich steuere eine I2C Porterweiterung mit meiner CCPro 128 und bekomme nur einmal Daten raus. > Ich weiß nicht wieso! > > <b>Senderoutine:</b> > void Write_pcf8574(byte Daten) > { > byte status, status_check; > I2C_Start(); > I2C_Write(0x4E); //0b01001110 > // Adressierung PCF8574N Write 0100 start + [A2=1|A1=1|A0=1] + Write W=0 > status = I2C_Status(); > switch (status) > { > case 0x18://Fall 1.0 //SLA+W wurde gesendet, ACK wurde empfangen > I2C_Write(Daten); //write Data > status = I2C_Status(); //I2C Statusabfrage > switch (status) > { > case 0x28://Fall 1.1 //Data byte wurde gesendet, ACK wurde empfangen > I2C_Stop(); > > status_check = I2C_Status(); > return (status_check); > break; > > case 0x30://Fall 1.2 //Data byte wurde gesendet, NACK wurde empfangen > Port_WriteBit(PORT_LED1,PORT_OFF); // LED2(rot) an > break; > > default://Fehlermeldung über LED > Port_WriteBit(PORT_LED1,PORT_OFF); // LED1(rot) an > } > break; > > case 0x20://Fall 2.0 //SLA+W wurde gesendet, NACK wurde empfangen > Port_WriteBit(PORT_LED1,PORT_OFF); // LED2(rot) an > break; > > default://Fehlermeldung über LED > Port_WriteBit(PORT_LED2,PORT_OFF); // LED1(rot) an > } > } > > Bei der Routine wird mir immer, wenn was unsinniges im Status steht ein Fehlermeldung über LED > ausgegeben. Diese ist aber aus, also müsste die Routine klappen. Das erste Datenbyte kommt auch > an, aber ein zweites, das ich über eine Schleife schicke nicht. Auch direkt hintereinander im Progcode > wird nicht verschickt. > > <b>Datenpacket:</b> > var1 = 1; > var2 = 2; > > while(1) > { > Daten = var1; > Write_pcf8574(Daten); > > AbsDelay(100); //delay > > Daten = var2; > Write_pcf8574(Daten); > } > } > > kann mir dabei weiterhelfen?