PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATMega644 @20MHz Fehlfunktion UART



Alex20q90
26.06.2007, 17:50
Hi,

ich habe ein Testprogramm in einen ATMega644 geladen. Das Programm soll nur einen Text ausgeben. Im Terminalfenster kommen nur wirre Zeichen.

Die Übertragungsrate ist auf 57600 gestellt. Habe aber auch 19200 getestet. Mit einem anderen Programm (FW von nem C-Code) klappt die Übertragung.

Kommt Bascom mit den 20MHz nicht klar? oder kann es den M644 noch nicht richtig?

Wer hatte ähnliche Probleme?

Grüße
Alex



'-----------------------------------------------------------------------------------------
'name : print.bas
'-----------------------------------------------------------------------------------------
$regfile = "m644def.dat" ' specify the used micro
$crystal = 20000000 ' used crystal frequency
$baud = 19200 ' use baud rate

Do

Print "print variable a "

Print 'new line

Print "Text to print." 'constant to print

Waitms 300
loop
End

Dnerb
26.06.2007, 18:18
Also 19200 sollten tun. Bei 57600 ist die Abweichung 1%, das kann Probleme machen.

Habe keinen 20MHz Quarz hier, sonst würde ich es mal testen.

Wenn Dein Aufbau mit C funktioniert, dann wäre das echt komisch.

Probier nochmal das C Proggi. Vielleciht ist in Deiner Schaltung was passiert.

Gruß Dnerb

Alex20q90
26.06.2007, 18:32
Hi,


Probier nochmal das C Proggi. Vielleciht ist in Deiner

Hab ich schon! Schaltung ist IO. Das ist ja das was ich nicht verstehe! Beim C ist ja alles perfekt. nur mit dem Bas bekomme ich es nicht hin! Und wenn ich an nem Beispiel scheitere ist das ned so doll ;-)

peterfido
26.06.2007, 22:50
Mein m644 läuft 1A mit 16 Mhz. 20 Mhz habe ich nicht in der Schaltung eingebaut. Verusch doch einfah mal Crystal mit 10000000 anzugeben und als Baud 38400. Dabei den m644 aber weiterhin mit 20 Mhz takten und das Terminalproggie auf 19200 stellen.

Alex20q90
28.06.2007, 16:17
Hi Peterfido

danke für die Tipps, aber es muss doch in Bascom so auch funktionieren?

Kann es sein das wenn ein Fusebit im Teiler gesetzt ist, das die UART auch halbiert? Wäre eine Erklärung!

peterfido
28.06.2007, 16:46
Der Vorteiler für den Takt gilt natürlich für den gesamten uC. Allerdings sollte das "Problem" dann auch bei den anderen Programmversionen (C) auftreten.