Das Programm ist ja recht übersichtlich.
$CRYSTAL =16000000 richtig ?
Fuses auf externen Quartzl ?
$Baud = 9600 Terminaleinstellung ?
Hallo.
Normalerweiße programmiere ich jetzt in C, nur in Bascom will ich UART mit meinen mySmartUsb - Programmer testen.
Mein Code:
Jetzt bekomme ich (pro Sekunde) im Bascom Terminal nur:Code:$regfile = "m32def.dat" $crystal = 16000000 $baud = 9600 Do Print "TEST" Wait 1 loop
UHhUú (so ähnlich).
Ich denke es liegt irgendwie an der Baudrate, kann mir aber nicht helfen.
Ich habe probiert die Baudrate zu ändern (natürlich beim Terminal als auch im Programm) ----> sobald die Baudraten bei Terminal und im Programm gleich gesetzt sind kommen die UH´s, sind sie verschieden kommen etweder noch verwirrtere Zeichenschlangen oder gar nichts...
Danke für die Hilfe!
Das Programm ist ja recht übersichtlich.
$CRYSTAL =16000000 richtig ?
Fuses auf externen Quartzl ?
$Baud = 9600 Terminaleinstellung ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Ja, müsste alles stimmen. Hmmm
"müßte" is zu wenig.
Du schickst ja 4 + 2 Zeichen ( "TEST" + CR + LF )
Wieviele Schmierzeichen zeigt das Terminal ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
6 Stück.... UWuUú (das " ´ " zählt wohl auch als ein Zeichen)
Wenn ich "test" schreibe: QStTÚ ... aber das wären dann ja zu viele oder?
Kannst dus mal auf einem normalen RS232 port am pc testen? auf deinen alten?
[quote]Du schickst ja 4 + 2 Zeichen ( "TEST" + CR + LF ) [*quote]
stimmt nicht. ich denk er schickt nur TEST. das CR und LF wird ja hoffentlich nur gesendet wenn mans will. Das mit den zeichenanzahlen würd ich nicht so genau nehmen. Denn zb ein Ü wird bei falscher kodierung auch als 2 buchstaben dargestellt. und wenn ich mit falsche baudrate fahre dann kommt auch irgendwetwas. ich hab auch ein terminal was da einfach nicht richtig anzeigt. (Linux). In Kontrollerlab kann ich beim terminal manchmal sogar eine stufe daneben sein mit der baudrate und es geht noch.
PRINT "HELLO" ohne strichpunkt heißt, daß man es will..er schickt nur TEST. das CR und LF wird ja hoffentlich nur gesendet, wenn....
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Aso. wusste ich nicht. bin eigendlich eingeleischter C programmierer.Zitat von PicNick
Na dann. Beim C macht man "\n", wenn man es will, beim Bascom macht man ";", wenn man es nicht will. Ist wohl was historisches.
However: Bringt das Terminal mehr Zeichen als gesendet, ist die Baudrate beim sender zu gering, und vice versa.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
@Hackreti
Hast du im Terminal auch die Komunikationsparameter richtig eingestellt ?
Zahl der Datenbits (7/,Stopbits (0/1/2), Parität usw. ?
Mich fleucht du hats da Differenzen gegenüber dem Avr.
Der Takt am AVR ist nicht gerade Baudratenfreundlich.
Zum Testen würde ich die Baudrate erstmal beidseitig auf 300 oder 600 stellen.
Da gehts auch mit 16Mhz ohne Probleme bis du sicher bist.
Danach kannst du mit den Raten raufgehen oder evtl nen Baudratenquarz nehmen. (Glattes Teilerverhältnis ohne Rest)
Gruß
Ratber
Lesezeichen