unerklärliches Verhalten beim Ändern des System-Prescalers

OP #2015782
Lesenswert?

Hallo Forum,

Langsam drehe ich hier durch. Folgende Situation:
Ich versuche gerade, einen Software-UART zu bauen. Bei 9600 Baud brauche 
ich einen Timer-Interrupt von ziemlich genau 0,1ms um ein Bit zu takten. 
Nun ist es so, daß bei jeder Einstellung des System-Prescalers, der 
sonstige Code wurde nicht verändert, der Timerinterrupt immer die selbe 
Taktfrequenz bringt, während der Kontrolltakt auf PA4 immer stimmt. Nur 
beim ersten Flashen des Programms stimmte der Timer-Takt mit der 
Berechnung überein.

Meine Hardware:
Tiny44 mit Bootlader von Peter drauf,der auf PA6 und 7 arbeitet. Darüber 
will ich mir im weiteren Verlauf dann Werte auf dem Terminal ausgeben 
lassen. Die Taktpins sind PA4 mit einem Kontrolltakt aus einer Schleife 
und PA5,auf dem der Timertakt ausgegeben wird, kommen sich also nicht in 
die Quere. Nun frage ich mich, wieso sich der geänderte Prescaler nicht 
auf den Timer auswirkt. Zuletzt hatte ich, wie im Code zu sehen, den 
Prescaler nicht benutzt und trotzdem lief der Timer mit 2ms, hat sich 
also nicht geändert. Nun bin ich ziemlich ratlos. Vielleicht hat ja 
jemand einen Hinweis, was da abgeht. Ich habe mal den Code beigelegt.

mfg birder
Angehängte Dateien:
OP #2016104
Lesenswert?

Hat sich erledigt. Ich muß natürlich das CLKPCE-Bit zuerst schreiben, 
danach erst den Teilfaktor. Diese Zeile ist mir beim Umkopieren wohl 
unter die Räder gekommen und ich Dussel habs nicht mal mitbekommen. 
Jetzt funktioniert es wie gewünscht und damit ist dieser Beitrag auch 
erledigt und kann gelöscht werden.

mfg birder

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