Gast
#148520
Hi! Ich habe ein kleines Problem mit einem P89C51RD2. Das Ding ist extern mit 18.432mHz getaktet um gewöhnliche Baudraten vernünftig timen zu können. Ich verwende für die UART-Kommunikation Timer 1 im Auto-Reload-Modus mit folgenden Werten: RCAP2L = 0xC4; RCAP2H = 0xFF; Das ganze habe ich mit der Formel 65536 - (OszFreq / 32 * BaudRate) berechnet (der µC läuft im 12-Takt-Modus). Übertragungsrate sollte 9600 Baud sein, ich habe allerdings auch schonmal mit 2400 getestet was das gleiche Ergebnis bringt. Der Bootloader schafft bis zu 28800 Baud, daran sollte es also nicht liegen.. Problem ist nun folgendes: Wenn ich einzelne Zeichen übertrage passt alles wunderbar. Sobald ich aber "Volllast" fahre und schnell Daten hin- und her schiebe bekomme ich nach einiger Zeit Datenmüll bzw überhaupt keine Zeichen mehr übertragen. Die komplette Initialisierung der UART-Schnittstelle hänge ich mal an. Hat vielleicht jemand eine Idee was hier nicht stimmt? Oder hat sich bei der Berechnung der Reload-Werte ein Fehler eingeschlichen? Ich freu mich über jede Antwort.. - Tobi