PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATMEGA8 an RS232



Jeronnimo
16.09.2007, 22:02
Hallo zusammen!

Ich programmiere gerade einen Mega8 für die Modellautos meines Sohnes, es soll blinken und und und...! Funktioniert soweit auch ganz gut - bin bei der Arbeit auf einige Fragen gestoßen die Ihr mir bestimmt beantworten könnt - Danke schon mal!

Benutzt die Print routine aus Bascom einen der Timer, so dass dieser nicht anderweitig benutz werden kann? Sowie ich einen print zum debuggen absetze verändern sich alle Blinkzeiten...?

Kann ich auch Quarze mit krummen Frequenzen einsetzen (4,096MhZ) oder erwartet der Atmel genau 2,4,8 etcMHz? (Rechnet der Atmel richtig um)

Jeronnimo

linux_80
16.09.2007, 23:06
Hallo,

UART braucht keinen Timer,
mit welchem Takt der AVR getaktet wird ist im Prinzip auch egal, es muss im BascomProgramm nur richtig angegeben werden, damit der Compiler die richtigen Werte für UART und die Timer usw. berechnet und im erzeugten Code verwendet. Damit 9600Baud auch 9600 Baud werden.

Wie hast Du die Blinkzeit angegeben ?
Das sich die Zeit ändert könnte nur sein, weil während der Ausgabge über UART (Print) das Programm solange nix andres macht.

Evtl. können wir etwas Code sehen 8-[

Jeronnimo
18.09.2007, 22:37
Hallo linux_80,

Du liegst schon richtig mit Deinem Hinweis das die print routine die Programmausführung stoppt. Ich dachte die UART arbeitet den job des Sendens unabhängig vom hauptprogramm ab. Gibt es eine Übersicht über die BAscom Befehle und deren benötigte Taktzahl?

Gruß Jeronnimo

linux_80
18.09.2007, 22:57
Hallo,

die UART kann die Bytes schon unabhängig übertragen, nur das der Print wartet, bis jedes einzelne Byte draussen ist, um das nächste nachzuschieben.

Du könntest dir mal Config Serialin/out genauer ansehen, dann geht die Übertragung per IRQ, dann sollte das Print noch unanhängiger sein.

Eine Liste in dieser Abhängigkeit wirds, denke ich, nicht geben.

Jeronnimo
19.09.2007, 21:18
Hallo,

Danke Dir, das ist die Lösung!!!