Forum: Mikrocontroller und Digitale Elektronik Unerwünschter Impuls beim PWM ATMega48


von Marc R. (Gast)


Lesenswert?

Hallo zusammen!

Ich bin an ein Problem gestossen:
Ich habe meinen Timer für den PWM am Ausgang PB2 initialisiert.

Nun erhalte ich ohne andere Pinaktivitäten, etwa alle 20ms einen etwa 
1us langen Impuls. Ist das normal, oder wie kann ich das verhindern.
Der Impuls erfolgt auch, wenn ich in meinem Programm nichts anderes als 
die Initialisierung durchführe.

Es soll erst bei einer Aktivität an Pin ICP1 ein Interrupt ausgelöst 
werden, welcher einen Impuls ausgibt.

Hier ist meine Initialisierung:
1
//Timer 1 für Drehzahlregelung
2
TCCR1A=(1<<COM1B1)|(1<<WGM10)|(1<<WGM11);  //PWM Mode
3
TCCR1B=(1<<WGM12)|(1<<WGM13)|(1<<CS10);    //CLK=1MHZ
4
TCCR1C=0;  
5
OCR1AH=0x4E;          //Top Wert = 19999  
6
OCR1AL=0x1F;          //(T = 20ms)
7
OCR1BH=0x03;          //PWM Wert = 950 
8
OCR1BL=0xB6;          //(ti = 950 us =Minimalstellung) 
9
TIMSK1=(1<<ICIE1);        //Interrupt bei Input capture

von Karl H. (kbuchegg)


Lesenswert?

Marc Räz schrieb:

> Nun erhalte ich ohne andere Pinaktivitäten, etwa alle 20ms einen etwa
> 1us langen Impuls. Ist das normal,

Ist normal.
PWM funktioniert so, dass der Pin bei 0 auf jeden Fall eingeschaltet 
wird. Erst danach erfolgt die Überprüfung auf den Vergleichswert. Da der 
ebenfalls 0 ist, wird der Pin sofort wieder abgeschaltet. Aber einen 
kurzen Impuls kriest du auf jeden Fall.

> oder wie kann ich das verhindern.

Wenn dein Vergleichswert 0 ist, dann einfach den Timer abschalten, in 
dem du ihm den Vorteiler wegnimmst. Kein Vorteiler, kein Timertick, 
keine PWM.

Oder aber die PWM invertieren. Dann hast du bei hohen Vergleichswerten 
kürzere PWM Pulse. Dafür kannst du dann allerdings ein 'Dauer-Ein' bei 
einem Vergleichswert von 0 wieder nicht erreichen. Wie auch immer: einen 
der beiden Endwerte musst du aufgeben. Oder aber die Sache über das 
Zu/Weg-schalten des Vorteilers regeln.

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.