ATMEGA16 Bufferproblem

Gast #115445
Lesenswert?
• ▲
▼
Hallo ich habe ein Programm geschrieben für den ATMEGA16L
Ich lese den String bis LF ein. Das LF wird richtig erkannt.
Was mir ein Rätsel ist: bei "print buffer" wird das LF nicht mit
aus-
gegeben, kommt aber beim nächsten "print string" als erstes Zeichen.
Wenn mir jemand weiter helfen könnte, wäre ich sehr dankbar.

MfG John

dim buffer as string * 30

do

buffer=""

wait rec:
if usr.7=0 then
goto waitrec
endif


if udr<>10 then          ' LF
buffer=buffer+chr(udr)
goto waitrec
else
buffer=buffer+chr(udr)
endif

print buffer;

loop

end
Gast #115447
Lesenswert?
• ▲
▼
Hab ich auch versucht. Das empfangene String endet mit CR LF.
wenn ich z.B. als letzte Zeichen !* sende und LF mit * wechsle. wird
bis ! ausgegeben. Der * erscheint wieder beim nächsten gelesenen string
als erstes Zeichen.
Gast #115448
Lesenswert?
• ▲
▼
Ist mir heut auch aufgefallen. Irgendwie komisch. Hab mir dann noch ne
sub gebastelt, die rxc wieder resettet und damit dann den buffer
loescht. Seitdem gehts:


sub udrflush
dim dummy as byte
    do
      dummy=udr
    loop until ucsra=0
end sub

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.