frage zur uart!!!

Gast
Die Bitzeit kannst Du aus der Baudrate errechnen und die Pause für 4 Bit
kannst Du entweder mit einem Timer oder mit einer Schleife realisieren.
In Assembler ist die Zeitbestimmung mit der Schleife einfach, weil Du
die Zeit für jeden einzelnen Befehl anhand der Befehlsliste ermitteln
kannst. Einfaches Beispiel:

nop
nop
nop
nop

Damit vertrödelt der Prozessor 4 Taktzyklen (was nicht identisch mit
Deiner 4-Bit-Pause ist).

Gruß, Frank
Gast
hi oliver!

ja, die pause soll immer zwischen jedem byte entstehen und is 4 bit
lang. also in meinem fall ca 400microsecunden.

hast du eine idee?
Gast
ja, das mag sein. aber ich bin noch ein anfänger und kann es leider
nicht. habe es jetzt geschafft, dass das signal ausgegeben wird. fehlen
eben nur noch die pausen und das antriggern des signals.
Gast
@Ralph
Hi,
bei den Links findest du einen Verweis auf den AVR delay loop
genearator, ein kleines Windows-Programm, das dir nach Vorgabe der Zeit
ein Stück Assembler-Code generiert. Den kannst du dann in dein Programm
mittels Drag/Drop importieren.
Gast
@Ralph:

Tut mir leid, vergiss das mit dem Software UART!
Ich habe etwas überlesen. ich dachte, du willst nach jedem BIT 4 bit
Pause machen. Du hast aber Byte geschrieben.

Das geht natürlich auch mit dem Hardware UART, einfach mittels nops
nach dem Senden eines Bytes das Senden des nächsten verzögern. Eben wie
oben beschriben.

Ich werd die Beiträge nächstes Mal genauer lesen!

Grüße
Steffen
Du setzt einfach einen Timerinterrupt mit der Länge von 14 Bitzeiten auf
und in diesem startest Du dann immer das Senden des nächsten Bytes.

Alternativ könntest Du, wenn schon 2 Bitzeiten Pause reichen würden,
die UART auf 9 Bit + 2 Stopbits setzen.


Peter

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.