Forum: Mikrocontroller und Digitale Elektronik Interrupt-Routine und PWM mit einem Timer möglich?


von Markus N. (k3hlim)


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

von Matthias S. (Firma: matzetronics) (mschoeldgen)


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.

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
Noch kein Account? Hier anmelden.