PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : UART Verbindung - Terminal zeigt statt "TEST" &



hackgreti
05.04.2007, 15:27
Hallo.
Normalerweiße programmiere ich jetzt in C, nur in Bascom will ich UART mit meinen mySmartUsb - Programmer testen.

Mein Code:


$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600

Do
Print "TEST"
Wait 1
loop


Jetzt bekomme ich (pro Sekunde) im Bascom Terminal nur:
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!

PicNick
05.04.2007, 15:36
Das Programm ist ja recht übersichtlich.
$CRYSTAL =16000000 richtig ?
Fuses auf externen Quartzl ?
$Baud = 9600 Terminaleinstellung ?

hackgreti
05.04.2007, 15:42
Ja, müsste alles stimmen. Hmmm ](*,)

PicNick
05.04.2007, 15:49
"müßte" is zu wenig.
Du schickst ja 4 + 2 Zeichen ( "TEST" + CR + LF )

Wieviele Schmierzeichen zeigt das Terminal ?

hackgreti
08.04.2007, 12:43
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?

Superhirn
08.04.2007, 12:47
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. :)

PicNick
09.04.2007, 14:09
..er schickt nur TEST. das CR und LF wird ja hoffentlich nur gesendet, wenn....
PRINT "HELLO" ohne strichpunkt heißt, daß man es will :-)

Superhirn
09.04.2007, 15:32
..er schickt nur TEST. das CR und LF wird ja hoffentlich nur gesendet, wenn....
PRINT "HELLO" ohne strichpunkt heißt, daß man es will :-)

Aso. wusste ich nicht. bin eigendlich eingeleischter C programmierer.

PicNick
09.04.2007, 16:10
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.

Ratber
10.04.2007, 09:42
@Hackreti


Hast du im Terminal auch die Komunikationsparameter richtig eingestellt ?

Zahl der Datenbits (7/8),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)

hackgreti
11.04.2007, 14:35
Danke. werd ich einmal ausprobieren und dann hier posten

repi64
19.04.2007, 22:12
Hast du denn überhaupt einen MAX232 als Inverter dazwischen?
Bei einer Direktverbindung gibt es noch die Möglichkeit mit dem "Inverted" parameter.