Hallo, kann man bei einem AVR-ATmega einen Timer als CLK-Source für einen andern Timer nehmen? Ich habe versucht bei der Interruptroutine des Timers 1 den Timer 3 zu erhöhen. (TCNT3++;) Man kann ja mittels CPU den Zählerstand beeinflussen. Jedoch wird dabei kein Interrupt ausgelöst (im Output Compare Match Mode). Hat jemand eine Idee wie man das Problem umgehen könnte, damit ich einen Interrupt ca. alle 12 Stunden auslöse? Grüße Hans
> damit ich einen Interrupt ca. alle 12 Stunden auslöse?
Ich werde nie verstehen, warum die Leute immer Interrupts auslösen
wollen.
Ja, so wie mein Vorredner sagte, macht man das normalerweise. Zähl ein
(oder gegebenenfalls mehrere) Register in einem genau bekannten
Zeitintervall (üblicherweise geliefert von einem Timerinterrupt) hoch.
Prüf nach jedem Inkrementieren, ob es den Zählstand erreicht hat, der
den 12 Stunden entspricht. Wenn die Prüfung "ja" ergibt, führ die
Alle-12-Stunden-Aktion aus und resette das Register wieder auf Null.
Fertig.
Wenn man die Timer einmal liebgewonnen hat, dann will man anscheinend alles damit lösen. Aber mit einem Register ist es sicherlich einfacher und bequmer. Danke Hans
Naja... also THEORETISCH kannst du einen Timer bei Compare den OCA Pin toglen lassen, jezt legst du den OCA Pin auf z.B. T0 und Taktest damit Den zweiten Timer... Aber machs lieber mit dem Register... ist besser und einfacher ;)
>Wenn man die Timer einmal liebgewonnen hat, dann will man anscheinend >alles damit lösen. Das sollst Du ja auch! Du sollst blos keine Hardware-Timer verwenden, sondern *Software*-Timer. Deren Prinzip ist simpel und immer dasselbe, nämlich das beschriebene. Außerdem ist es kein Problem, wenn Du 52 Software-Timer für Deine umfangreichen Steuerungsaufgaben benötigst (wobei auch selbstverständlich ein paar davon andere ein- uns ausschalten dürfen und solche Scherze...) - Du schreibst einfach den entsprechenden Code und fertig. Hardware-Timer sind dagegen eine knappe Ressource, mit denen sparsam und überlegt umgegangen werden muss, weil z. B. der ATmega8 nur drei davon hat.
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.