www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART Baudrate in C-Programm verändern


Autor: mct (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo µC und Programmierfreunde,

Ich entwickle auf einem WRAP-Board mit einem AMD Geode SC1100 unter 
Linux ein C-Programm.
Der dort vorhandene UART ist ein 16550A.
Ich lege eine Baudrate von 9600 im C-Programm über eine termios Struktur 
fest. Ich möchte gerne über die RS232-Schnittstelle ein 0x00 Byte senden 
und dabei die Bitzeiten verändern. Als Ergebnis sollen ca. 13 Bits über 
eine folgende Ein-Draht-Leitung gehen (LIN-Break).

Beschreibungen zufolge soll dies möglich sein, indem man die Baudrate 
heruntersetzt, das 0x00 Byte sendet und anschließend wieder heraufsetzt.

Genauso habe ich es unter Linux im C-Programm mit den Funktionen 
cfsetospeed(&struktur, B4800) bzw. cfsetspeed(&struktur, B4800) gemacht, 
anschließend mit tcsetattr() gesetzt, das Byte gesendet und wieder auf 
9600 gesetzt. Auf dem Oszi konnte ich nur das Starbit + 8 Bits Low Pegel 
+ Stopbit messen...

Die erste Frage wäre ob jemand das schon mal mit Erfolgt gemacht hat und 
wenn ja wie?

Ist es prizipiell überhaupt mit diesen Funktionen möglich (damit es µC 
unabhängig auf anderen Boards läuft) oder müssen die Register des UART's 
über ihre Adressen ausgelesen werden. Was ich mir dabei vorstelle ist, 
ein bestimmtes Flag aus einem UART Register zu Lesen (Daten wurden 
verschickt) und erst jetzt die Baudrate wieder hoch setzen???
Auf jeden Fall wäre ich über Hinweise zur Lösung (am besten auch mit 
C-Code) dankbar.

Danke

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.