Interrupt erfolgt zu schnell hintereinander
Hallo,
nach auslösen eines Interrupts erfolgt eine Portabfrage.
DDas Ergebnis dieser Abfrag wird per RS232 als Text an einen PC zur auswertung gegeben.
Leider erfolgt der Interrupt manchmal sehr oft direkt hintereinander.
Die Textübertragung erhält damit einen fließenden Übergang wodurch der PC das Ende der ersten und den Anfang der nächsten meldung nicht mehr erkennt.
Obwohl ich Anfang und Ende eindeutig gekennzeichnet habe schafft es das VB2010 Programm nicht.
Auch das Anhängen des ; oder CHR(13) bringt nicht das gewünschte Ergebnis.
Meine nächste Möglichkeit wäre eine gewollte Verzögerung des Sendens.
Hat jemand einen Vorschlag wie ich das realisieren kann?
Re: Interrupt erfolgt zu schnell hintereinander
Zitat:
Zitat von Duesentrieb
... Interrupts ... Portabfrage ... Ergebnis ... wird per RS232 als Text an einen PC zur auswertung gegeben ...
Einmal sind Interruptserviceroutinen nicht sonderlich dazu geeignet, längere Aktionen drin durchzuführen. Einen Text - wie lange ist der denn? - in der ISR abzusenden würde man spätestens nach Deiner Anfrage als Unfug bezeichnen. Wenn schon am PC ausgewertet wird, könnte doch ein einziges Byte als Portstatus genügen ! ? ! ?
Weiter Fragen sind offen. Welche Übertragungsrate hast Du für die Verbindung? Hast Du schon mal den üblichen und den kürzesten Abstand zwischen zwei Interrupts festgestellt oder geschätzt? Das ist hier offensichtlich wichtig. Diesen Abstand könnte man mit einem Portwechsel in der ISR markieren und per Oskar auswerten. Schließlich wäre es möglich, mal die Übertragungsgeschwindigkeit hochzunehmen. Ich fahre mit meinem USARTPEGEL-nach-USB-Konverter problemlos 256 kBd. Dabei müsste natürlich die Abholerei am PC entsprechend schnell reagieren.
Schließlich wäre es auch noch denkbar, die Geschichte sozusagen offline (siehe hier - 600 int16 in ca. 1/3 Sekunde) an den seriellen Port zu senden. Da Du so gut wie nix über Deine Aufgabenstellung und die aktuell bekannten Parameter schreibst, bleibt das Raten von Lösungen für Dein Problem aber ein Glückspiel.