-
-
Atmega8 PWM - Timer2 - Pin17 ?
Hallo,
ich bin jetzt langsam am verzweifeln.
Ich versuche verzweifelt den dritten PWM-Kanal vom Atmega8 am Pin 17
zum klaufen zum bringen.
Wenn ich das alles richtig verstanden habe, muss ich den über Timer2
einstellen. Doch irgendwie bekomme ich den dann mittels dem
compare - befehl nicht zum laufen.
Bascom bringt mir immer eine Fehlermeldung.
Kann mir eventuell jemand die richtige initialisierung posten, und wie ich dann den Ausgang einfach setzen kann.
Wäre für jede Hilfe dankbar.
Gruß
-
Erfahrener Benutzer
Roboter-Spezialist
Was für eine Fehlermeldung bringt Bascom denn?
-
Also mal genau:
Programmauszug :
---------------------------------------------------------------------------------------
Config Timer2 = Pwm , Prescale = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
'Die Timer freigeben
Enable Timer1
Enable Timer2
'Die Timer starten
Start Timer1
Start Timer2
'Die PWM-Register zuweisen
Led3 Alias Pwm0a
Led2 Alias Pwm1a
Led1 Alias Pwm1b
Led1 = 0
Led2 = 0
Led3 = 0
-----------------------------------------------------------------------------------
folgende Fehler bringt Bascom :
Assignment Error (PWM0A) für die Zeile mit " Led3=0"
-----------------------------------------------------------------------------------
Für Led1 und Led2 bekomme ich keine Errormeldung.
Schon mal danke für euere Hilfe
Gruß
-
Erfahrener Benutzer
Roboter Genie
Hast du denn in der Bascom Hilfe oder im Manual des Mega8 nachgesehen, ob der Timer0 überhaupt PWM machen kann?
Gruß
Rolf
-
Erfahrener Benutzer
Robotik Einstein
PWM0A kann auf keine Fall richtig sein, da der PWM-Kanal zu Timer 2 und nicht zu Timer 0 gehört. Probier mal PWM2 aus.
-
Erfahrener Benutzer
Roboter-Spezialist
Da der Atmega8 nur einen Kanal für Timer0 hat wäre PWM0 richtig (und würde keine Bascom-Fehler provozieren).
Du möchtest aber Timer2 benutzen, deshalb solltest du dem Rat von uwegw folgen
-
Erfahrener Benutzer
Robotik Einstein
Timer 0 hat gar keinen PWM-Kanal! PWM0 gibt es also nicht.
-
Hallo,
erstmal danke für die Hilfe, leider war keiner auf dem richtigen Weg
Der Fehler lag daran, das ich Timer2 nicht über pwm.. ansprechen kann,
sondern nur über orc2 ; hat mich sehr sehr langes suchen im Internet
gekostet. Da scheinbar mehr Leute das problem haben, hier die ultimative Lösung :
--------------------------------------------------------------------------------------
Blablabla wie üblich am Anfang
Config Timer2 = Pwm , Prescale = 1 , Compare Pwm = Clear Up , Pwm = On
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
'Die Timer freigeben
Enable Timer1
Enable Timer2
'Die Timer starten
Start Timer1
Start Timer2
'PWM auf 0 setzen
Pwm1a = 0 'PWM1
Pwm1b = 0 'PWM2
Ocr2 = 0 'PWM3
- weiterer Programmcode
Pwm1a = A1
Pwm1b = A1
Ocr2 = A1
-----------------------------------------------------------------------------------
Vielleicht hilfts ja jemanden weiter, damit er nicht auch ewig suchen muss.
Gruß
-
Neuer Benutzer
Öfters hier
Hallo Hellraider,
vielen Dank,mir hat diese Zeile
....Compare Pwm = Clear Up , Pwm = On ...
sehr geholfen.
viele Grüße
-
Hallo Hellraider,
mir hats auch sehr geholfen-Danke!!
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen