Na ja - ob 19.200 Baud mit 1 MHz nicht vielleicht auch klappen könnten, müsste man mal schauen (dazu später mehr). Aber eins steht fest: Die Angabe bei $Crystal legt NICHT fest, mit welchem Takt der Controller läuft! Das kann man ausschließlich mit den Fusebits einstellen (die übrigens auch unverändert bleiben, wenn Du "normalen" Programm-Code in den Controller brennst).Mhh ok das heißt also ich muss den Internen Oszillator auch auf 8 MHZ einstellen um 19200 Baud zu erhalten?
Wenn aber der tatsächliche Takt (Fuses) und die Angabe bei $Crystal nicht übereinstimmen, sind alle zeitlichen Berechnungen falsch, die Bascom macht. Und dann kann´s mit einer koordinierten Übertragung via RS232 nicht klappen.
Also solltest Du vielleicht erstmal den internen Takt auf 8MHz stellen. Wie das in Bascom geht, weiß ich nicht, da ich meine Fusebits mit einem anderen Programm bearbeite. Aber das dürfte ja nicht allzuschwer herauszufinden sein. Vorsicht ist bei der Option "externer" Takt geboten: Wenn Du diese Option einmal gewählt hast, schaltet sich der interne Oszillator ab - und dann hast Du erst wieder Zugriff auf den Controller, wenn Du ihn mit einem externen Taktsignal versorgst (z.B. einem 1MHz-Rechteckgenerator).
Und zu den Baudraten muss man wissen, dass es zu jeder Taktfrequenz "passende" Baudraten gibt, d.h. Baudraten, die sich mit einer tolerablen Fehlerrate generieren lassen. Abweichungen von ein paar Prozent können schon nachhaltige Probleme bei der Datenübertragung verursachen. Deshalb wird auch oft empfohlen einen Quarz zu verwenden, wenn die UART-Schnittstelle benutzt werden soll. Schau im Netz einfach mal unter Baudraten-Rechner nach - da wirst Du einiges finden!
Lesezeichen