PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mit RN-MiniControl RBG-LED Ansteuerung



electricboy
13.10.2006, 17:18
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/index.php/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.

electricboy
15.10.2006, 22:27
Wann mir hier keiner helfen? 8-[

Jon
16.10.2006, 08:45
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.
Japs. 3PWM-Ports brauchst du.


mal angesehen aber da habe ich nur 2 PWM Ports oder?
wenn du dir die Beschreibung auf Robotikhardware anschaust (http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=131)
dann siehst du sehr schnell, dass du insgesamt 6PWM-Ports zu Verfügung hast.

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?!?
Warum sollten die Timer anders verknüpft sein?
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?


Über Hilfe würde ich mich sehr freuen.
Gern geschehen. Nur nach 23.00 Uhr wird das bei mir etwas schwer.

jon

electricboy
19.10.2006, 19:51
Danke für die Hilfe, aber ich bekomme das noch nicht hin.
So wie ich das hier (http://www.atmel.com/dyn/resources/prod_documents/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 O:)

Ist der Ausgang OC0A (PD6) dann z.B. der des Timer0?

Jon
20.10.2006, 09:40
PWM-Ports sind Pin:
D3
D5
D6
B1
B2
B3

Das Probramm für den Pin D5 und D6 würde dann so aussehen:

$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

Sollte so eigendlich gehen.

electricboy
20.10.2006, 21:35
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?

Jon
21.10.2006, 08:35
Also eine LED hängt an PD6 und einfache Bitausgabe funktioniert auch, dann leuchtet sie. Aber nicht bei der PWM.
Wie hast du die LED angeschlossen? - an den µC oder an GND?

Hab leider auch kein Oszilloskop.
Ich auch nicht. :(


Müsste das nicht auch Timer0 anstatt Timer1 heißen, weil PD6 und PD5 zum Timer0 gehören?
Soweit ich weiß gehören die zu Timer1.

Aber immer wenn ich Timer0 eingebe kommt beim compilen ne Fehlermeldung.
Das ist auch richtig so.


Welchen Minimal und Maximal kann Compare den annehmen?
Bei meinem beispiel 0 als hellstes und 255 als dunkelstes.

jon

electricboy
27.10.2006, 21:54
Wie hast du die LED angeschlossen? - an den µC oder an GND?
Weder noch.....hab ich über ne Transistorstufe gemacht, weil da später ja auch mehrere dran sollen.

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! :)