I2C (I²C / IIC) Kann nur eine Senderoutine rausschicken??? Kategorie: Programmierung C (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? | ||
Antwort schreiben Antworten: Re: I2C (I²C / IIC) Kann nur eine Senderoutine rausschicken??? (von Gunter - 30.03.2008 20:55) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum