FiFo lesen bringt sporadisch Fehler

OP #5563385
Lesenswert?
• ▲
▼
Hallo allerseits,

ich habe hier eine kleine Funkübertragungsstrecke mit zwei gleichen 
Schaltungen aufgebaut, die je einen ATmega1284p und ein RFM23BP 
enthalten. Den Sender habe ich so eingerichtet, daß er unterschiedlich 
lange Strings nacheinander abwechselnd sendet. Der Empfänger gibt den 
empfangenen String aus dem Fifo per Uart (Fleury-lib) ans Terminal aus. 
Die Initialisierung habe ich per Excel-Datei heraus gefunden. Ich nutze 
Fifo-mode mit packethandler und auto-TX bei Erreichen des oberen 
Schwellwertes im Sende Fifo. 40 kbps. Zum Ablauf: pkvalid-IRQ wird 
abgewartet, dann der RX-Fifo gelesen und in ein Stringarray kopiert, 
RX-Fifo gelöscht, UART-Ausgabe, Empfang wieder eingeschaltet. SPI-Takt 
läuft mit 62500 Hz und bis 2 MHz getestet einwandfrei.

Oft stimmen die Ausgaben. Leider fehlen manchmal am Anfang der Ausgabe 
einige Zeichen. So ein bis 5 könnten das sein. Aufgrund des CRC gehe ich 
davon aus, daß bei der Funkübertragung nichts verloren geht. Bleibt also 
nur das Beschreiben oder Lesen des Fifos, jeweils im burst-mode. Es 
werden nur so viele Zeichen geschrieben, wie die Länge des Textes 
vorgibt.

Hat jemand so etwas schon mal beobachtet oder eine Idee, woher das 
kommen könnte? Andere UART-Ausgaben von Texten aus dem Flash oder aus 
Itoa erscheinen immer vollständig.

mit freundlichem Gruß
Gast #5564419
Lesenswert?
• ▲
▼
Hallo,

was "Die Initialisierung habe ich per Excel-Datei heraus gefunden." 
bedeutet das?

bei mir laufen 3x 57600 Bit/s per Software Uart im Interruptbetrieb über 
je einen Fifo. Da passiert nichts unerwartetes.

Ein RX-, bzw. TX-Fifo gehört zur Funktionalität des Moduls und diese 
fasse ich nicht direkt an, sonder schreib in das RX-Fifo und im 
Hintergrund wird es per Interruptroutine gelesen und somit geleert. Was 
(welche Daten) da nun drin steht, ist für die Fifo-Funktion unerheblich!

Da keiner dein Programm kennt, ist eine spezielle Antwort nicht möglich.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.