Interrupt-Routine und PWM mit einem Timer möglich?

OP #3201196
Lesenswert?

Hallo,

ich experementiere seit einiger Zeit mit einem Atmega16 und möchte damit 
eine Steuerung aufbauen, die verschiedene Funktionen hat. Dabei sind 
manche Funktionen unabhängig voneinander.

Für die Lichtsteuerung möchte ich die vorhandenen PWM-Kanäle verwenden, 
von denen der Atmega16 ja 4 Stück hat.

Adererseits möchte ich die zeitlichen Abläufe, also wie lange bei der 
Steuerung einzelne Funktionen aktiviert bzw. deaktiviert werden, mit 
Interrups steuern, damit der µC während der Zeit auf andere Ereignisse 
reagieren kann.

Nun läuft die Interrupt-Steuerung ja ebenfalls mit Hilfe eines Timers, 
der beim Überlauf oder bei einem vorher festgelegten Wert einen 
Interrupt auslöst und dann resetet wird, wobei bei der PWM der Timer 
immer von 0 bis max hoch und wieder runter zählt, wenn ich das richtig 
verstanden habe und ich somit wegen der PWM den Timer nicht für die 
Zeitsteuerung reseten kann.

Nun meine Frage:
Ist es möglich, bei dem Atmega16 sowohl 4 unabhängige PWMs als auch eine 
Interrupt-Routine für zeitliche Steuerungen zu programmieren oder 
schließt sich das gegenseitig aus?

Ich möchte jetzt nicht ein fertiges Prgramm haben, sondern nur wissen, 
ob das überhaupt möglich ist und evtl. den einen oder anderen 
Denkanstoß, was ich dafür machen müsste, wenn es möglich ist.

K3HLIM
(Firma: matzetronics) #3201199
Lesenswert?

Markus Niewerth schrieb:
> Ich möchte jetzt nicht ein fertiges Prgramm haben, sondern nur wissen,
> ob das überhaupt möglich ist

Ja. Der Timer Overflow Interrupt z.B. läuft völlig unabhängig von der 
PWM und kann frei benutzt werden. Auch die OC Interrupts gehen, sind 
aber im Zeitpunkt von den Werten in den OC Registern abhängig.
Sieh das Diagramm im Mega16 Datenblatt 'Figure 14.7' an - der TOV wird 
bei BOTTOM gesetzt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren