Wann mir hier keiner helfen?
Hallo!
Ich bin neue hier und möchte mich gerne auch mal näher mit den Controllern von Atmel beschäftigen. Hab mich in meiner Ausbildung nur mit dem 8085 in Assembler rumgeschlagen
Ich würde gerne eine Ansteuerung von RGB-LED's in Basic realisieren und hab hier im Forum rumgesucht und mir auch die Tutorials angesehen, aber komme nicht so recht weiter.
Um alle drei Grundfarben ansteuern zu können brauche ich ja 3 PWM Ports wo ich den Tastgrad unabhängig von einander steuern können muss.
Hab mir das Programm:
https://www.roboternetz.de/wissen/in...Bascom_und_PWM
mal angesehen aber da habe ich nur 2 PWM Ports oder?
Außerdem würde das auf einem Mega168 der auf dem RN-MiniControl drauf ist doch gar nicht laufen weil die Timer anders verknüpft sind?!?
Über Hilfe würde ich mich sehr freuen.
Wann mir hier keiner helfen?
Japs. 3PWM-Ports brauchst du.Zitat von electricboy
wenn du dir die Beschreibung auf Robotikhardware anschaust (http://www.shop.robotikhardware.de/s...roducts_id=131)Zitat von electricboy
dann siehst du sehr schnell, dass du insgesamt 6PWM-Ports zu Verfügung hast.
Warum sollten die Timer anders verknüpft sein?Zitat von electricboy
den Schaltplan habe ich mir jetzt nicht angeschaut, aber wenn ich das nach der Beschreibung richtig verstehe, sind alle PWM-Ports frei verfügbar.
Die Frage ist nur, wo?
Gern geschehen. Nur nach 23.00 Uhr wird das bei mir etwas schwer.Zitat von electricboy
jon
Nice to be back after two years
www.roboterfreak.de
Danke für die Hilfe, aber ich bekomme das noch nicht hin.
So wie ich das hier (http://www.atmel.com/dyn/resources/p...ts/doc2545.pdf) sehe, hat der mega 168 drei Timer. Aber wenn ich versuche das Beispiel PWM Programm anzupassen kommt bei
Config Timer0 = Pwm
und
Config Timer2 = Pwm
eine "invalid parameter" meldung für die zeilen.
Kannst du mir wohl ein Beispiel geben wie ich die Counter richtig anspreche?
Und dann noch ne Frage
Ist der Ausgang OC0A (PD6) dann z.B. der des Timer0?
PWM-Ports sind Pin:
D3
D5
D6
B1
B2
B3
Das Probramm für den Pin D5 und D6 würde dann so aussehen:
Sollte so eigendlich gehen.Code:$regfile = "m168def.dat" $crystal = 4000000 Config Pind.5 = Output Config Pind.6 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1 Do Compare1a = 205 Compare1b = 51 Loop End
Nice to be back after two years
www.roboterfreak.de
Da tut sich leider gar nichts....
Also eine LED hängt an PD6 und einfache Bitausgabe funktioniert auch, dann leuchtet sie. Aber nicht bei der PWM.
Hab leider auch kein Oszilloskop.
Müsste das nicht auch Timer0 anstatt Timer1 heißen, weil PD6 und PD5 zum Timer0 gehören?
Aber immer wenn ich Timer0 eingebe kommt beim compilen ne Fehlermeldung.
Welchen Minimal und Maximal kann Compare den annehmen?
Wie hast du die LED angeschlossen? - an den µC oder an GND?Zitat von electricboy
Ich auch nicht.Zitat von electricboy
Soweit ich weiß gehören die zu Timer1.Zitat von electricboy
Das ist auch richtig so.Zitat von electricboy
Bei meinem beispiel 0 als hellstes und 255 als dunkelstes.Zitat von electricboy
jon
Nice to be back after two years
www.roboterfreak.de
Weder noch.....hab ich über ne Transistorstufe gemacht, weil da später ja auch mehrere dran sollen.Zitat von Jon
Also ich hab das ganze noch mal ausprobiert aber nicht mit D5 & D6 sondern mit B1 & B2 und es funktioniert! Ich kann die LED durch verändern der Compare Werte dimmen.
Also scheint B1 & B2 doch zu Timer 1 zu gehören.
Problem ist jetzt nur ich brauche für 3 PWM Ausgänge mindestens 2 Timer!?!
Aber wenn ich jetzt Timer0 und Timer2 initialisieren will, meckert er beim compilen, wie muss ich das schreiben?
Ich habe die Belegung dem Datenblatt so entnommen:
Timer0
OC0A -> PD6
OC0B -> PD5
Timer1
OC1A -> PB1
OC1B -> PB2
Timer 2
OC2A -> PB3
OC2B -> PD3
Vielen Dank für die bisherige Hilfe!
Lesezeichen