delay zw. UART-Ausgaben fehlt?

Gast #2020593
Lesenswert?

hallo!

Als Terminalprogramm nutze ich bisher erfolgreich minicom. Alternativ 
habe ich per Win-PC Hypertrm genutzt.
1
                 uart_puts("qwe");
2
     _delay_ms(200);
3
     _delay_ms(200);
4
     _delay_ms(200);
5
     _delay_ms(200);
6
     _delay_ms(200);
7
     uart_puts("rtz\n");

Dann müsste die zweite Hälfte der Ausgabe doch verzögert kommen. Kommt 
aber nicht! Mein Terminalprogramm erzeugt die Pause VOR den Ausgaben, 
die dann zeitgleich kommen! GRRR

Bitte um Hilfe!

ggf hilft der ganze code? (ATMEGA 32, AVRStudio, Winavr)
#2020596
Lesenswert?

Timo P schrieb:

> Dann müsste die zweite Hälfte der Ausgabe doch verzögert kommen.

Nicht unbedingt.
Kommt drauf an, welche und wieviele Pufferstufen dazwischen sind, die 
erst mal abwarten bis ein \n daherkommt, ehe sie dann die 
darunterliegenden Ausgabeschichten aktivieren.

> ggf hilft der ganze code? (ATMEGA 32, AVRStudio, Winavr)

Ist schon mal ein Anfang.
Aber such mal die Einstellungen deines Terminalprogramms ab, ob es dort 
sowas wie 'Zeilenpuffer' gibt, die abgeschaltet werden können.
Gast #2020598
Lesenswert?

>Mein Terminalprogramm erzeugt die Pause VOR den Ausgaben,
>die dann zeitgleich kommen!

Das kenn ich. Das liegt wohl an dem PC-Treiber. Der ist nicht für 
einzelne Bytes gedacht. Guck dir das mal mit nem Oszi an, das kommt 
bestimmt korrekt aus dem µC.

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