www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Baudrate umstellen?


Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Ist es irgendwie möglich bei laufendem Programm die Baudrate der UART zu 
wechseln? Hab ein Mega163 und programmiere in C.
Die Baudrate soll von 19200 auf 9600 und zurück wechseln.Oder muß ich 
evtl. auf ein Mega128 umsteigen?
Gruß Helge

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Helge!

Natürlich geht das. Ich habe sowas vor Kurzem bei einem 2313 gemacht. Es 
handelte sich um ein Windows-Programm, welches den Kontroller über die 
Serielle ansteuerte. Bei dem Windows-Programm konnte man die Baudrate 
einstellen.
Ich realisierte das so:
Wenn man die Baudrate des Windows-Programms umstellte z.B. von 9600 auf 
19200, dann sendete das Windows-Programm einen Befehl (9600) an den 
Atmel-Kontroller. Dieser sendete ein OK (9600) zurück. Danach wechselte 
das Windows-Programm die Baudrate und der Kontroller gleichzeitig. Auf 
diese Weise funktionierte es.
Beim Windowsprogramm musste ich in diesem Fall einfach die Serielle 
schließen und wieder mit dem neuen Wert öffnen
und beim µC habe ich einfach das Baudratenregister UBRR, welches für das 
Timing der Baudrate verantwortlich ist neu beschrieben. Zusätlich wurde 
die Baudrate im EEPROM abgespeichert.

Martin

Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Martin
Ich schalte die UART über ein 4066 vom Handy zum GPS empfänger um. Nur 
wichtig ist das ich die Baudrate bei laufendem Programm ändern kann und 
nicht resetten muß.
Hab schon den Gedanken gehabt den Takt zu halbieren aber das wird wohl 
auch nichts.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es handelt sich beim 163 auch um das UBRR-Register, welches man 
umschreiben muss, damit die Baudrate geändert wird. Dies funktionert 
während des Betriebes. Also es ist kein Reset nötig. Doch du solltest 
während des Wechselns nicht gerade was über die Serielle hinausschicken.

Martin

Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na dann danke ich Dir. Ich versuche mal heute Abend mein Glück.
Gruß Helge

Autor: Gunter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Martin,

>... Es handelte sich um ein Windows-Programm, welches den Kontroller über die 
Serielle ansteuerte

derartiges würde ich unter NT/W2k auch gerne machen. Womit hast Du das 
realisiert - was braucht man dazu ?
Generell gefragt: wie finde ich einen Einstieg in sowas ?

Gunter

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Gunter!
Ich verwende die Programmier-Tools von National-Instruments. In der 
Schule haben wir das gelernt.
Da gibt es das Programmiertool Labview und das Programmiertool CVI.

Labview ist eine Programmiersprache, wo man keine Zeile Programmieren 
muss, sondern man zeichnet das Programm. Jedes Symbol ist eine Funktion, 
welches auf der linken Seite Eingänge besitzt und auf der rechten 
Ausgänge. Die einzelnen Funktionen sind mit Linien verbunden, die den 
Datenfluss zwischen diesen Funktionen darstellen. Es ist eine etwas 
andere Denkweise als das normale Progrmamieren, da in diesem Schaltplan, 
den man zeichnet, quasi alles parallel abläuft und man hier etwas 
aufpassen muss. Es ist jedoch nicht schlecht, wenn man Vorkenntnisse in 
C mitbringt, da die Stringformatierung darauf aufbaut.
Labview hat den Vorteil, dass man sehr schnell ein kleines Programm 
zusammen hat. Z.B. Verbindung über die Serielle oder Datei lesen, Datei 
speichern. All dies geht sehr schnell und einfach. Zu Beginn war ich 
sehr skeptisch gegenüber einer Grafiksprache, jedoch hat sich das Blatt 
schnell geändert. Man findet auch Fehler sehr schnell.
Der Nachteil besteht jedoch darin, dass das Programm bei komplexeren 
Problemen sehr kompliziert wird. Man verbringt dann schon sehr viel Zeit 
damit, dass man irgendwelche Fenster vergrößert, da sich die darin 
enthaltenen Funktionen nicht mehr ausgehen. Das ist besonders dann der 
Fall, wenn man das Programm im Nachhinein erweitern will.

Aus diesem Grund arbeite ich auch gern mit CVI. Es handelt sich um ein 
Produkt von derselben Firma. Hier programmiert man jedoch unter C. Ich 
bin mit diesem Produkt sehr zufrieden. Mit diesem Tool gibt es für den 
Hobbyanwender fast keine Grenzen mehr und trotzem bleibt das Ganze recht 
übersichtlich.  Will man ein aufwendiges Programm erweitern, so drückt 
man einfach (wie gewohnt) die Enter-Taste und fügt den Text ein.
Nachteil: Die Fehlerfindung ist (im Gegensatz zu Labview) wieder etwas 
aufwendiger. Wenn man in ein File schreiben will oder über die Serielle 
was übertragen will, dann ist alles etwas aufwendiger.

Es gibt von dieser Firma eine Homepage: http://www.ni.com/
Ich glaube man kann sich sogar wo eine Testversion runterladen. 
Beispiele sind enthalten. Ich glaube Schüler dürfen die Version gratis 
nutzen. Aber man kann ja mal anrufen und fragen.
Achtung: Die Homepage ist die Unüberschaubarkeit in Person. Ich habe die 
Erahrung gemacht, dass selbst NI-Mitarbeiter Schwirigkeiten haben bei 
ihrer Produktvielfalt den Überblick zu behalten.

Martin

Autor: Stefan_h (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Find ich toll jemanden zu treffen der mit CVI arbeitet.

CVI is net schlecht, aber ich würd einem Anfänger in der 
PC-Programmierung zu Visual-Basic raten. Vorallem die Kommunikation mit 
der Seriellen Schnittstelle ist leicht und schnell aufgebaut und man 
kommt leichter an eine Vollversion ran als von CVI.

lg,

Stefan

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Stefan_h
Ich kann da leider nicht mitreden, denn ich habe nie Visual-Basic 
gelernt. Mein erstes Programm schrieb ich übrigends auf einem C64. Es 
waren meine ersten Basic-Programme. Aber ich glaube das Basic von damals 
ist in keiner Weise mit dem Visual-Basic vergleichbar.
Martin

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.