PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PWM mit ATMEGA644p mit timer0, timer1 und timer2



lebratmaxe
20.07.2010, 20:52
Hallo,

für ein größeres Beleuchtungsprojekt brauche ich 6 PWM Kanäle. (Das Projekt musste vom AMTEGA644 auf den den ATMEGA644p umziehen, da ich den ATMEGA644 bei reichelt nicht mehr bekommen habe.)
Auf dem ATMEGA644 haben folgende Codezeilen zur Einrichtung der PWM funktioniert:

Config Timer0 = Pwm , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 64
Config Timer2 = Pwm , Compare A Pwm = Clear Down , Compare B Pwm = Clear Up , Prescale = 8

Auf dem ATMEGA644p funktionieren nur noch die PWMs von timer1. Die von timer2 gehen nicht mehr und für timer0 kommt folgende Fehlermeldung: Invalid parameter for CONFIG parameter or value [COMPARE A PWM = CLEAR DOWN]
(mit einem Verweis auf die Zeile wo timer0 konfiguriert wird.

Weiß jemand woran das liegt?
Man findet zwar haufenweise Doku wie man timer1 mit PWM konfiguriert aber für die anderen beiden (die ja leider nicht gleich konfiguriert werden) siehts halt schlecht aus.

Ich verwende die Bascom Demo Version 1.11.9.1

for_ro
21.07.2010, 22:09
Hallo,
deine drei Configs kompileren in der 1.11.9.9 und der 1.12.0.0 ohne Probleme.
Musst du wohl auf die neueren Versionen upgraden.

lebratmaxe
25.07.2010, 15:20
Hi,
danke für den Hinweis, ein Update der Demo auf 1.11.9.8 (das aktuelle zum Download) hat das Problem behoben.
Aber noch eine Frage: warum kann ich bei Timer1 schreiben "Pwm = 8", wenn ich dies aber bei Timer0 oder Timer2 schreibe kommt die Fehlermeldung: Invalid parameter for CONFIG parameter or value in [8]

Felix H.
26.07.2010, 18:41
weil du damit die auflösung der pwm-timer einstellst. timer1 kann 8,9 oder 10bit PWM, die anderen beiden sowieso nur 8 bit. Daher ist die einstellung überflüssig

lebratmaxe
29.07.2010, 18:42
merci, dann ist jetzt alles klar.