Ich habe ein Problem mit dem Uart, der Interruptgesteuert empfangen soll und das Zeichen dann direkt zurücksenden soll. Erst nach einem Neustart wird das Zeichen an den PC gesendet. Es scheint so, als ob ein Befehl zum Entleeren des Puffers fehlt. Also ich starte den MC und sehe "bereit...". Dann schicke ich ein "A" ab und beim nächsten Einschalten sehe ich dann "Abereit...". Wer kann mir helfen? SIGNAL(SIG_UART_RECV) { c = UDR; UDR = c; } int main() { initrs232(); sei(); puts ("bereit...\r\n"); while(1); }
>Einschalten sehe ich dann "Abereit...".
Das liegt am PC. bzw an dessen UART. Der mag keine einzelnen Zeichen.
Tippe mal ganz viele Zeichen ein und lass die zurücksenden.
Die kommen dann plötzlich auf einmal an
Das das Zeichen was Gesendet wird wird vermutlich zuerst in einem Buffer der Terminals landen welcher erst nach einem CRLF Angezeigt wird. Somit liegt das wohl an deinem Terminat das Die Zeichen nicht Direkt angezeigt werden. Probiere sonst einmal ein anderes Terminal Programm wie zB PuTTY. MfG Kai
>rst nach einem CRLF Angezeigt wird Nein. >uerst in einem Buffer des Terminals landen Nein. >uerst in einem Buffer Ja, der COM-Schnittstelle.. Du musst mehr senden.
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.