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