Hallo,

an meinem Atmega8 benutze ich die 3 Hardware PWMs um meine RGB LEDs anzusteuern.
Beim Übergang von Grün Blau auf Rot Grün und Rot Blau auf Rot Grün setzt die LED kurz aus.
Beim Übergang von Grün Rot auf Grün Blau gibt es keine Aussetzer!

Weiß jemand wieso das so ist?
Hier mein Code bisher:
Code:
$regfile = "m8def.dat"
$crystal = 1000000

Dim A As Word


Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 8       'Timer OC1 Einstellungen
Config Timer2 = Pwm , Prescale = 8 , Compare Pwm = Clear Down , Pwm = On       'Timer OC2 Einstellungen

Enable Timer1                                               'Timer OC1 aktivieren
Enable Timer2                                               'Timer OC2 aktivieren

Load Timer1 , 1                                             'Timer OC1 nach jedem Tackt interrupt auslösen
Load Timer2 , 8                                             'Timer OC1 nach jedem achten Tackt interrupt auslösen

Enable Interrupts                                           'Interrupts aktivieren

On Timer1 Ueberlauf_oc1                                     'Timer OC1 Überlauf festlegen
On Timer2 Ueberlauf_oc2                                     'Timer OC2 Überlauf festlegen


Config Pinb.1 = Output                                      'OC1A (ROT)
Config Pinb.2 = Output                                      'OC1B (GRUEN)
Config Pinb.3 = Output                                      'OC2  (BLAU)

Config Portd = Output                                       'PortD x Matix
Config Portc = Output                                       'PortA y Matrix

Portd = 1                                                   'PortD Ausgang 0 einschalten
Portc = 1                                                   'PortD Ausgang 0 einschalten


Do                                                          'Hauptprogramm

   'Rot aus Grün an
   For A = 255 To 0 Step -1
      Pwm1a = A
      Pwm1b = 255 - A
      Waitms 100
   Next

   'Grün aus Blau an
   For A = 255 To 0 Step -1
      Pwm1b = A
      Ocr2 = 255 - A
      Waitms 100
   Next

   'Blau aus Rot an
   For A = 255 To 0 Step -1
      Ocr2 = A
      Pwm1a = 255 - A
      Waitms 100
   Next

Loop


'Überläufe für Timer OC1 und OC2
Ueberlauf_oc1:
   Rotate Portd , Left , 1
   Load Timer1 , 1
Return


Ueberlauf_oc2:
   Rotate Portc , Left , 1
   Load Timer2 , 8
Return



End
Bin für jede Hilfe dankbar!

MfG
Carsten