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
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.