BAudrate in Assembler einstellen

Gast #48513
Lesenswert?

Wie stelle ich die Baudrate (9600) bei 4 MHz ein. Nutze ein
Pic16f84a???
Habe im Netz ein Quelltext gefunden da wird die Baudrate so ermittelt:

clockrate             EQU .4000000            ;Xtal value
fclk                  EQU clockrate/4
baudrate              EQU ((fclk/.9600)/3-2)  ;9600 is the baud rate


Steige jedoch nicht dahinter was in diesen drei Zeilen passiert.
Hatt jemand eine erklärung oder ein Link wo man mehr info zu Baudraten
einstellen in Assembler findet. Danke
OLLI
Gast #48514
Lesenswert?

> clockrate             EQU .4000000
Definition der Quarzfrequenz

> fclk                  EQU clockrate/4
Der PIC teilt den Takt intern nochmal durch 4, somit hast du 1MHz, d.
h. ein Befehl benötigt 1us (bzw. 1/fclk us) zum abarbeiten.

> baudrate              EQU ((fclk/.9600)/3-2)Wenn du nun fclk durch
die gewünschte Baudrate teilst, kriegst du die Anzahl der Takte, die
bei der seriellen Übertragung für ein Bit benötigt werden. Die Division
durch 3 und Subtraktion von 2 kommen sicher von irgend einer
delay-Funktion.

Wenn du aus deinem Quelltext auch die Übertragunsroutine benutzt,
kannst du das alles doch direkt übernehmen. Must nur noch deine
Quarzfrequnz und gew. Baudrate einsetzen.

War das verständlich ?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren