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
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
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.
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
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
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
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
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.