Timer als CLK-Source für anderen Timer

Gast #425979
Lesenswert?
• ▲
▼
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
Gast #425993
Lesenswert?
• ▲
▼
> 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.
Gast #426084
Lesenswert?
• ▲
▼
>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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.