Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit serieller Ausgabe
schmic20
31.01.2005, 17:40
Hallo,
ich habe ein Problem mit der seriellen Ausgabe von Daten mit einem Mega16.
Er wird mit dem internen Takt von 4MHz getaktet.
Die Daten gehen via MAX232 auf einen PC.
Ich hatte es schon einmal probiert und da ging es problemlos.
Gestern hat es aber nicht mehr funktioniert. Deshalb habe ich das Beispielprogramm aus der Bascom-Hilfe genommen. (Einmal "Hallo Welt" und dann im Sekundentakt "Test")
Die Baudrate habe ich dann auf 19200 geändert.
In meinem Terminalprogramm habe ich 19200, 8 Datenbits, keine Parität und 1 Stopbit eingestellt.
Im Terminalfenster erscheinen nicht die Zeichen die ich haben wollte.
Daraufhin habe ich das Terminalprogramm auf 7 Datenbits gestellt und siehe da, die Übertragung funktioniert !?!
Was bitteschön hat nun meinem AVR gesagt, dass er nur 7 Datenbits senden soll? (Ich programmiere nur mit Bascom V1.11.7.7)
Und wie bringe ich ihn wieder mit BASCOM dazu, 8 Datenbits zu senden?
Viele Grüße
Michael
In Bascom unter "Options", dort unter "Communication" kann man es einstellen.
Oder im Programm mit "Config Com1, ..."
schmic20
31.01.2005, 20:23
Hallo albundy,
vielen Dank für den Tip. Das habe ich gestern auch schon probiert ](*,)
und es hat keine Auswirkungen gehabt. Ich habe sogar im Programm als Befehlszeile "Config Com1 =....." usw. eingegben, Bascom hat das auch ohne Fehler compiliert, aber geändert hat sich nichts.
Viele Grüße
Michael
schmic20
03.02.2005, 22:02
Hallo,
gestern hat überhaupt nichts mehr funktioniert, nur noch undefinierbare Zeichen.
Da bin ich hergegangen und habe bei der internen Taktfrequenz von 4MHz alle Baudraten von 1200 bis 19200 durchprobiert. Immer mit dem selben Ergebnis, dass am anderen Ende nur undefinierbare Zeichen ankommen.
Ich habe dann auch noch die internen Taktfrequenzen von 2MHz und 1MHz probiert und siehe da, die Übertragung funktioniert problemlos. Bei 1MHz bis 4800 Baud und bei 2MHz bis 9600 Baud.
Daraufhin habe ich auch noch die internen 8MHz getestet und auch da habe ich nur undefinierbare Zeichen erhalten.
Hat noch jemand derartige Erfahrungen mit den ATmega16 gemacht oder habe nur ich 2 dieser Bausteine die das machen?
Im Datenblatt habe ich nichts gefunden, dass bei höheren Taktfrequenzen irgendwelche Einschränkungen wären, im Gegenteil, nach der Formel sollten bei höheren Taktfrequenzen auch höhere Baudraten möglich sein.
Viele Grüße
Michael
Hallo Michael,
du schreibst nicht, ob der Mega16 in einem STK500 oder auf einem eigenen Board läuft.
Für mich hört sich das nach falscher Taktrate an. Hast du die Fusebits überprüft? Kannst du mal einen externen Quarz oder Oszillator anschliessen?
Gruss,
Marcus
schmic20
05.02.2005, 15:10
Hallo Marcus,
der ATmega16 läuft auf einem separaten Testboard ohne externen Quarz.
Ich habe die Fusebits für die interne Takterzuegung nach Datenblatt gesetzt und zurückgelesen.
Natürlich habe ich in meinem Programm die Taktrate dem Compiler mitgeteilt.
Ich habe auch die entsprechende Baudrate und den Zeichenrahmen am Terminalprogramm eingestellt.
Mit 1MHz und 2MHz funktioniert bei unterschiedlichen Baudraten alles perfekt. Stelle den ATmega16 aber auf 4MHz oder 8MHz um, dann kommt nur noch wirres Zeug und zwar bei jeder Baudrate.
Es hatte ja auch schon mit einem ATmega16 bei 4MHz und 19200 Baud funktioniert, den ich im Juli gekauft hatte. Dieser steht mit aber nicht mehr zur Verfügung. Im Oktober habe ich dann noch 2 bestellt und die machen das beide nicht.
Ich habe auch schon überlegt ob es am Compiler liegt, weil ich vorher mit Bascom V1.11.7.4 programmiert habe und jetzt mit 1.11.7.7, aber auch mit der alten Version ist es genauso.
Bei meiner nächsten Bestellung werde ich nochmal ATmegas mitbestellen und mal sehen was die dann machen.
Viele Grüße
Michael
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.