Hallo zusammen, ich möchte ein time-out Protokoll mit einem PIC in C realisieren. Vorab erst alles auf theoretischer Basis, d.h. habe noch keine Hardware. Annahme: Mein Datenpaket besteht aus einem Adressbyte und n Nutzbytes. Alles liegt im Speicher vom PIC. Der Befehl wird über RS485 gesendet. Zwischen jedem Nutzbyte gibt es eine Pausenzeit x (ist kleiner als timeout z). Nach einer Totzeit y (ist größer als timeout z) kann ein neues Datenpaket gesendet werden. (mein 1.) Ansatz: Das erste Byte wird gesendet (i = 0), danach wird ein timer1 gestartet, der bis x läuft , anschließend das zweite (i = 1). Hier bietet sich doch eine for-Schleife an, welche die n Bytes behandelt. In der for-Schleife wird das erste Byte an die RS485 ausgegeben, danach der timer1 gestartet, bis n-1 Bytes gesendet wurden. Anschließend wird ein timer2 gestartete der bis y läuft, dann kann ein neuer Befehl bearbeitet werden. Wird z überschritten, bricht der Transfer ab. Doch was passiert, wenn während der Bearbeitung eines Datenpakets, schon ein nächstes ansteht? Dies kann doch abgefangen werden, indem timer2 eine boolean var setzt: var anfangs false, erst wenn timer2 bis y gelaufen ist folgt var true und ein neues Datenpaket kann bearbeitet werden. Was denkt ihr über den Sachverhalt? gruß blitzgeist
Hallo Leute, hat niemand zu diesem Thema was zu sagen? Gruß blitzgeist
Du musst halt schneller senden als die Datenpakete anstehen oder die Datenpakete in einem Ringpuffer zwischenspeichern. Severino
Die Daten werden über USB FS an den PIC gesendet. Das ganze Datenpaket soll im Speicher des PICs zwischengespeichert werden und nach und nach die Bytes aus dem Speicher gelesen werden. In diesem Thread geht es mir auch darum, wie man generell ein timeout Protokoll realisiert. Gibt es da irgendwelche Internetseiten zu diesem Thema? Gruß blitzgeist
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.