Forum: Mikrocontroller und Digitale Elektronik UART-Puffer sendet erst nach Neustart


von Michael (Gast)


Lesenswert?

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);
}

von Matthias L. (Gast)


Lesenswert?

>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

von KB (Gast)


Lesenswert?

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

von Matthias L. (Gast)


Lesenswert?

>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
Noch kein Account? Hier anmelden.