www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik time out protokoll mit pic18f


Autor: Ron Napp (blitzgeist)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Ron Napp (blitzgeist)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

hat niemand zu diesem Thema was zu sagen?

Gruß
blitzgeist

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst halt schneller senden als die Datenpakete anstehen oder die 
Datenpakete in einem Ringpuffer zwischenspeichern.

Severino

Autor: Ron Napp (blitzgeist)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.