hi,
nach einem kurzen Zwischenspiel:
https://www.roboternetz.de/phpBB2/ze...754&highlight=
schlich ich mich heute Abend in die Werkstatt und bastelte etwas weiter.
Die Welt der PWM`s erschließt sich mir nun langsam.
Nach vielem Lesen im Buch von Roland Walter, dem Netz, Datenblatt, einiger Beispielprogramme, sowie eurer tatkräftigen Hilfekonnte ich 3 LED´s aufeinanderfolgend mit unterschiedlicher Geschwindigkeit aufleuchten und ausfaden lassen \
/
Anbei das kleine Programm, welches ich "verzapft" habe.
Falls Ihr Fehler entdecken könnt, lasst es mich bitte wissen.
Es sind mir noch nicht alle Aspekte meines "Geschreibsels" bis in´s letzte Detail klar.
Insbesondere die Register machen mir da noch etwas zu schaffen.
Es scheint ja eben dort sehr viele Kombinationen zu geben; je nachdem, welches Bit gerade gesetzt ist.
Deshalb habe ich mich auf die "Bascom-Variante" festgelegt (vorerst).
Code:'Hardware PWM Lauflicht by Klingon77 '12.März 2009 $regfile = "m168def.dat" 'Compilerdefinition $crystal = 16000000 'Quarzfrequenz 'PWM Ausgabepins Rot Alias Ocr0a 'PD 6 Gruen Alias Ocr0b 'PD 5 Gelb Alias Ocr2b 'PD 3 'Laufvariablen für Farbwechsel (256 Stufen) Dim Laufrot As Byte Dim Laufgruen As Byte Dim Laufgelb As Byte 'Pausenwert in "mS" während der Farbwechselschleifen (max: 65535 mS) Dim Pauserot As Word Dim Pausegruen As Word Dim Pausegelb As Word 'Ports initialisieren: Ddrb = &B00000000 'PB alle Eingang Ddrc = &B00000000 'PC alle Eingang Ddrd = &B01101000 'PD3, PD5 & PD 6 Ausgang; Rest Eingang 'Timer einstellen(Timer 0 & 2 sind 8-Bit Timer): ' 'Timer0 auf PWM stellen 'Timer0 PWM Ausgabe A(PD 6) & B (PD 5) einstellen 'Clear Down; LED wird mit höherem Variablenwert heller 'Vorteiler = 8 Config Timer0 = Pwm , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8 'Timer2 auf PWM stellen 'Timer2 PWM Ausgabe A(PD 3) einstellen 'Clear Down; LED wird mit höherem Variablenwert heller 'Vorteiler = 8 Config Timer2 = Pwm , Compare B Pwm = Clear Down , Prescale = 8 Enable Timer0 'Timer0 starten Enable Timer2 'Timer2 starten Do 'Endlosschleife: Beginn Pauserot = 2 'Pausenzeit im roten Farbwechsel Pausegruen = 4 'Pausenzeit im grünen Farbwechsel Pausegelb = 6 'Pausenzeit im gelben Farbwechsel '--------------------------------------------------- For Laufrot = 1 To 255 'PWM Wert hochzählen Rot = Laufrot ' Ocr0a (PD 6) = Laufrot-Wert Waitms Pauserot 'Pause für ROT entsprechend Variable Next Laufrot 'Nächster "Step" in der Schleife For Laufrot = 254 To 1 Step -1 'PWM Wert runterzählen Rot = Laufrot ' Ocr0a (PD 6) = Laufrot-Wert Waitms Pauserot 'Pause für ROT entsprechend Variable Next Laufrot 'Nächster "Step" in der Schleife '--------------------------------------------------- For Laufgruen = 1 To 255 'PWM Wert hochzählen Gruen = Laufgruen ' Ocr0b (PD 5) = Laufgruen-Wert Waitms Pausegruen 'Pause für GRÜN entsprechend Variable Next Laufgruen 'Nächster "Step" in der Schleife For Laufgruen = 254 To 1 Step -1 'PWM Wert runterzählen Gruen = Laufgruen ' Ocr0b (PD 5) = Laufgruen-Wert Waitms Pausegruen 'Pause für GRÜN entsprechend Variable Next Laufgruen 'Nächster "Step" in der Schleife '--------------------------------------------------- For Laufgelb = 1 To 255 'PWM Wert hochzählen Gelb = Laufgelb ' Ocr2a (PD 3) = Laufgelb-Wert Waitms Pausegelb 'Pause für GELB entsprechend Variable Next Laufgelb 'Nächster "Step" in der Schleife For Laufgelb = 254 To 1 Step -1 'PWM Wert runterzählen Gelb = Laufgelb ' Ocr2a (PD 3) = Laufgelb-Wert Waitms Pausegelb 'Pause für GELB entsprechend Variable Next Laufgelb 'Nächster "Step" in der Schleife '--------------------------------------------------- Loop 'Endlosschleife: zum Schleifenanfang End 'Programmende (da Endlosschleife nicht benötigt)
Fotos gibt es leider noch keine, da meine Werkstatt zur Zeit aussieht wie ein Schlachtschiff nach der "Schlacht um Midway"![]()
Wenn ich das Ganze etwas sauberer aufgebaut habe und mal wieder zum aufräumen komme werden sie prompt nachgelierfert.
Nochmals Dank für eure Hilfe bis hierher \/
liebe Grüße,
Klingon77
Nachtrag:
Den Threadtitel habe ich angepasst.
Falls jemand ähnliche Probleme hat, findet er auch was in der SUFU.






Zitieren

Lesezeichen