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ß
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.
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.