UART-Puffer sendet erst nach Neustart

Gast #770744
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);
}
Gast #770752
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
Gast #771065
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren