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 > Gibt es denn schon irgendeinen Termin oder eine Annäherung für die neue Version? > Nur mal grob, eher ein Jahr oder ein Monat? > > > > Achtung: > > > Die Funktion Serial_IRQ_Info(); hat einen Fehler beim Zurückmelden der verwendeten Elemente im > > > Empfangspuffer. Sobald die Elemente im Ringpuffer sich über den Nullindex hinweg erstrecken, > > > wird ein falsches Ergebnis zurückgeliefert! > > > > > > Beispiel: > > > Empfangen von 3 Nachrichten mit 49 Zeichen, wobei jede zunächst gesondert aus dem Puffer > > > (Größe 120 Byte) gelesen wird, bevor die Nächste eintrifft: > > > 1. Nachr. Indizes 0...48 > > > 2. Nachr. Indizes 49...97 > > > 3. Nachr. Indizes 98...199 & 0...26 > > > > > > Ruft man nun Serial_IRQ_Info(0, RS232_FIFO_RECV); auf, so liefert dieses 185 und nicht 49! > > > 185 entspricht dem Bitmuster von (-71) = 27 - 98 > > > Offensichtlich wird immer der Index des ältesten Elementes im Ringpuffer vom Index des dem > > > neuesten Elementes folgenden abgezogen, was im Nullüberschreitungsfall aber falsch ist! > > > > > > Im Zweifelsfall sollte man also nicht diese Funktion verwenden, sondern eine eigene Routine verwenden, > > > welche buffer[2] und buffer[3] auswertet. --> buffer ist das Array, welches man Serial_Init_IRQ() übergeben > > > hat. In diesen beiden Elementen steht der Index des ältesten Elementes, bzw. der Index, an welchem das > > > nächste eingehende Element gespeichert wird. > > > > > > Grüße, Rico Sinnig > > > > Jupp, kann ich bestätigen. Habe ich inzwischen für den neuen Interpreter gefixed. Bei einer > > Nullunterschreitung hatte die Funktion nicht richtig die Puffergröße addiert, sondern meist > > 256. Das kommt aus einer Zeit als die Interrutproutinen mal fest auf 256 Byte Puffergröße > > waren. > > > > Gruss Peter