Hallo zusammen,
ich möchte an einem Atmega8 am Pin 17 mittels Timer2 ein PWM-Signal ausgeben.
Das funktioniert soweit auch.
Nun zu meiner Frage, gibt es eine Möglich das PWM-Signal zu stoppen und wieder aufzunehmen? Das heißt, der Ausgangspin soll dann dauerhaft auf Low bleiben.
Mein Programm sieht in Auszügen momentan so aus.
Ich habe gelesen, dass wenn man einen Timer als PWM nutzt die Befehle Stop Timer und Enable Timer unwirksam sind. Ist das so?Code:Pwm_pin Alias Portb.3 Config Pwm_pin = Output Config Timer2 = Pwm , Pwm = On , Compare Pwm = Clear Up , Prescale = 256 Pwm2 = Sollwert
Der einzige Weg der mir momentan einfällt wäre den Pwm_compare auf 0 zu setzen, aber wäre das eine saubere Lösung?
Gruß
Ja, ist im Datenblatt auch so beschrieben oder ...Zitat von demmy
Ich habe mal im Bascom Simulator geschaut, was das Konfigurationskommando macht.Code:Config Timer2 = Pwm , Pwm = On , Compare Pwm = Clear Up , Prescale = 256
Im TCCR2 Register werden gesetzt die Bits: WGM20, COM21, CS22 und CS21
Bedeutet Phase Correct PWM, OC2 wird low bei Comparematch wenn TCNT hochzählt und high beim Runterzählen ( = non-inverted PWM). Prescaler auf 256.
Außerdem wird das DDRB Register schon richtig gesetzt. "Config Pwm_pin = Output" ist also nicht nötig.
Im Datenblatt steht:
Danach sollte OC2 auf low bleiben, wenn Du OCR2 auf 0 setzt (BOTTOM). Kommt mir etwas komisch vor, da er beim Runterzählen und Comparematch den Pin ja setzt und bei OCR2 = 0 dann plötlich low bleiben soll.Zitat von ATMega8, doc2486
Wenn es nicht hinhaut, sollte es dann aber mit OCR2 bzw PWM2 = 255 (MAX) klappen.
Gruß
Searcher
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Weg zu einigen meiner Konstruktionen
Um den Pin wieder selbst kontrollieren zu können, gibt's unter Config Timerx den Paramter "Disconnect", Config Timerx erneut damit aufgerufen koppelt die PWM-Einheit vom OCx-Pin ab, wobei der Pin ein Ausgang bleibt. Aber er kann dann mit den üblichen Befehlen auf 1 oder 0 gesetzt werden.
Ok vielen Dank zusammen,
es funktioniert jetzt einwandfrei!
Ich bin allerdings mit meiner Schaltung noch nicht ganz zufrieden. Ich habe sie jetzt mal testweise so aufgebaut:
Was haltet Ihr davon? Wäre es besser den IRFPC40 über einen Optokoppler vom Steuerungsteil zu trennen? Brauche ich evtl. noch einen Pull-Down-Widerstand an G ?
Gruß
Lesezeichen