Re: I2C (I²C / IIC) Kann nur eine Senderoutine rausschicken??? Kategorie: CC-Pro Unit & Appl.Board (von Gunter - 30.03.2008 20:55) | ||
Als Antwort auf I2C (I²C / IIC) Kann nur eine Senderoutine rausschicken??? von ToKu - 21.11.2006 14:33 | ||
| ||
> Hallo. > > Ich steuere eine I2C Porterweiterung mit meiner CCPro 128 und bekomme nur einmal Daten raus. > Ich wei� nicht wieso! > > Senderoutine: > 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. > > Datenpacket: > var1 = 1; > var2 = 2; > > while(1) > { > Daten = var1; > Write_pcf8574(Daten); > > AbsDelay(100); //delay > > Daten = var2; > Write_pcf8574(Daten); > } > } > > kann mir dabei weiterhelfen? Ich habe auch 2 Stueck PCF8574 benutzt. Ich habe eine Library dafuer geschrieben. Ebenso fuer den PCF8583 und die fuer 24C64 und LCD_3x12 erweitert. Ich habe mich nicht um die Reaktionen (Status) des Bausteins gekuemmert. Klappt prima. Den PCF8574 benutze ich allerdings nur als Ausgang. | ||
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum