Bascom hat bis zu der Version .8.1 ein Problem mit dem Tiny26 und den Hochbefehlen für den Timer1.
Ich möchte den Timer ganz normal nutzen um nach einer eingestellten Zeit eine Aktion auszuführen. Das Problem bei Bascom ist die Initalisierung des Timers. Zumindest habe ich das so durch viel Suchen im Forum und im Internet rausgelesen.
Aber die Beispiele die ich da gefunden haben waren alle für PWM oder Fast-PWM.
Hier erstmal der Codeausschnitt:
Code:
$regfile = "at26def.dat"
$crystal = 16000000
Led Alias Porta.4
Tccr1b = 11 'Prescale=1024 (mit 1a ändert sich auch nix)
Config Int0 = Change 'bei jeder Halbwelle reagieren
Enable Int0
On Int0 Int0_isr
On Timer1 Timer_irq
Enable Timer1
Enable Interrupts
Int0_isr:
Start Timer1
Return
Timer_irq:
Tcnt1 = Timervorgabe 'der Wert wird im Programm geändert
Set Led
Return
Die Zeile Config Timer1 = Timer als Zusatz bringt auch kein Erfolg.
Auch Pllcsr auf irgend einen Wert setzen ändert nichts.
Wenn alles auf Timer0 gestellt ist funktioniert es. Es liegt also am Timer1.
Ich weiss aber nicht, ob er nicht anläuft oder die ISR falsch aufgerufen wird. Zumindest springt er nicht in die ISR des Timers. In die des INT0 aber schon.
Wer hat denn eine Idee, was ich machen kann, damit die ISR zum richtigen Zeitpunkt aufgerufen wird?
Stacks habe ich schon weiter erhöht.
Über einen Assemblercode den ich einfügen kann wäre ich auch dankbar.
Lesezeichen