-
-
Erfahrener Benutzer
Robotik Einstein
Ich wollte den asynchronen Timer verwenden. Glaube ich zumindest. Ich müsste nochmal ins Datenblatt schauen, welcher wer ist. Aber zumindest den, der zum MCU-Takt läuft und nicht mit 64MHz.
So schlecht finde ich das Datenblatt zum Tiny26 aber nicht. Es kommt mir bis jetzt alle Fragen beantworten. Außer die zum Timer1. Weil die Einstellungen umfangreicher sind als die des Timer0.
Der Timer1 soll nach einem ausgerechneten Vorteiler und Voraufladung des Zählers und damit nach einer bestimmten Zeit einen OverflowINT auslösen.
In der ISR soll dann weiteres passieren.
Ich habe wie schon gesagt jetzt noch nicht ins Datenblatt geschaut welches Bit der Register was kann. Dazu komme ich erst heute Abend/Nacht.
Aber in Bascom ist es so (und das sind ja auch nur die Befehle um die betroffenen Register des AVR zu setzen oder zu löschen) das INTs allgemein und der Timer1 erstmal aktiviert werden müssen. Selbst das habe ich schon durch direktes setzen der Register probiert.
Aber das setzen des Registers und die ISR vermisse ich in deinem Listing.
Meine ASM-Zeit ist nun schon über 10 Jahre her.
Ich verstehe deinen Code so:
- "Variable" R16 auf 00000000 setzen
- PLLCSR und TCCR1A mit den Nullen beschreiben
- Die Bits CS10, 11 und 13 für TCCR1B auf 1 setzen.
- Und dann eine Endlosschleife.
Im Bascomcode habe ich ja das Problem, das ich ersten nicht 100%ig genau weiss, ob die Einstellungen so wie ich sie vorgenommen habe richtig sind, und ob der Timer1 überhaupt anläuft und warum die ISR nicht aufgerufen wird.
Es ist ja noch nicht einmal so, das die ISR zur falschen Zeit aufgerufen wird.
Also könnte der Timer
1. falsch eingestellt sein.
2. nicht gestarten sein.
3. der Sprung in die ISR falsch konfiguriert sein.
Ich werd das heute Abend nochmal genauer nachlesen und ausprobieren und berichten.
Danke schomal für deine Mühe!!!
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen