Für dieses Forum muß Javascript im Browser aktiviert werden!
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> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > > > > Hallo FF, (<- guter Name ;-) ) > > > > > > > > > > > > > ich möchte mit der CC2-Station Daten aus einer Wetterstation (Elsner P02-RS465) verarbeiten. > > > > > Die Wetterstation ist an einen Wandler RS485 nach RS232 angeschaltet. > > > > > Wenn ich nun den bisherigen Aufbau an eine COM-Schnittstelle eines PC's anschliesse und > > > > > 19200baud 8N1 einstelle, kann ich auf dem Monitor (mittels Programm, das den Eingang an COMx > > > > > auf den Bildschirm zaubert) jede Sekunde einen neuen 40Byte langen Ausdruck sehen. > > > > > Schliesse ich das ganze an die I2CCOM an, gelingt es mir nur 16Byte unterschiedliche Bytes > > > > > zu empfangen, bevor wieder mit dem Inhalt des ersten Byte begonnen wird. > > > > > > > > > > Bei der I2CCOM habe ich den TL16C550C gegen TL16C750 ausgetauscht. > > > > > => initCOM(1,0,1) > > > > > > > > > > Ich kann mit get() das Endzeichen 0x03 des 40Byte langen Protokolls separieren. > > > > > Danach setze ich ein flush() um den Empfangspuffer zu leeren für den nächsten Datensatz. > > > > > Danach ist es egal, ob ich receive(DATA[]) mit DATA[40] verwende oder über eine > > > > > Schleife die 40 Zeichen versuche einzeln mit get(DATA[i]) einzulesen. > > > > > Ich erhalte nur 16 von den 40 Zeichen. > > > > > > > > > > Hat jemand eine Idee, wo das Problem liegen könnte oder einen Lösungsvorschlag ??? > > > > > > > > Poste am besten einmal kurz Deine Routinen. > > > > Denn, der 64Byte-Fifo ist von mir natürlich gestestet und funktioniert ohne Probleme. > > > > Darum vermute ich, daß es irgendeine Kleinigkeit an den Routinen ist. > > > > (z.B. versehentliches Zurücksetzen des 64Byte-FiFo-Modes etc.) > > > > > > > > Du kannst das Bit auch mit <code>i2ccom.getReg(comport,i2ccom.IIR)</code> wieder auslesen. > > > > Beim Rückgabewert muß dann Bit 5 gesetzt sein. > > > > > > > > MfG André H. > > > > > > > Hallo zurück und vielen DANK für den Tipp, > > > > > > ich muss meine Aussage z.T. revidieren. Es können tatsächlich mehr als 16 Byte von der I2CCOM > > > gelesen werden. Aber nach 28 bzw. 29 Zeichen (Byte) gibt es eine Überlagerung, so dass die Zeichen > > > 29-40 eine Wiederholung der Zeichen 1-12 darstellen. Dies ist unabhängig davon, welche Methode > > > ich zur Selektion des Anfangs zum Lesen wähle. Im folgenden Beispiel triggere ich das Einlesen > > > des 40Byte-Arrays der Wetterstation,in dem ich den Puffer der I2CCOM so lange leere, bis eine > > > Sendepause der Wetterstation erreicht ist. Dann wird versucht, über i2ccom.receive() das nächste > > > 40Byte Array einzulesen. Als zusätzlicher Effekt ist noch zu nennen, dass bei dem Beispielcode > > > die Anzahl der eingelesenen Byte's zwischen 16 und 40 pro funktionsdurchlauf differiert. > > > Hier der Beispielcode mit Initialisierung, Einlesen und Ausgabe am LCD-Displ. der Station II: > > > > > > > Hallo nochmal an die CC2-Experten, > > > > ich habe zum testen die I2CCOM SDA/SCL direkt mit der CC2-Station verbunden ohne irgend welche > > Widerstände gegen +5V. Im Baustein sind ja bereits die 2 Stk. 330 Ohm Widerstände SDA+SCL > > eingebaut. Die Leitungslänge beträgt 20 CM. Könnte ggf. der fehlende Pullup Widerstand mein Problem > > sein ??? > > > > Zusatzfrage: Wenn ich den Interrupt-Ausgang der I2CCOM zum Triggern des Lesevorgangs > > verwenden will, kann ich diesen einfach direkt auf einen (Interrupt)-Eingang der CC2 schalten und mit > > getcount() abfragen ? > > > > DANKE für die HHHIIILLLFFFEEE !!! und Gruss FF > > Hallo liebe CC2-Experten, > > nach intensiver Studie der vielen hervorragenden Beiträge in diesem Forum kann ich mir nun einige > Fragen selbest beantworten. > Die CC2-Station verfügt für I2C über zwei 4,7k Pullup-Widerstände => keine zusätzlichen notwendig. > Den Interrupt der I2CCOM kann ich auf P1H.0-7 legen mit Pullup 10k Ohm nach +5V. > > Die Frage die ich mir stelle ist diese, ob dadurch mein Problem gelöst werden kann. > Wenn ich in einer Funktion (also keine parallelen Threads) die 40 Byte einlese, diese in 3 > kleineren Bytearray's speichere und diese dann auf dem Display ausgebe, > warum sehe ich nicht die vollen 40 Byte des Protokolls der Wetterstation? > > Kann mir jemand ggf. mit einem kleinen Beispiel-Code behilflich sein, wie es funktionieren müsste ??? > > PS:Mein komplettes Testprogramm steht in der letzten Antwort vom 15.02.06. > > Vielen DANK im Voraus > > M.f.G. FF