Danke für den Code...

Code:
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 34                                               '### hwstack vergrößern. Wichtig bei Verwendung von Interrupts
$swstack = 10
$framesize = 10

Config Portb.1 = Output
Config Portb.2 = Output
Config Portb.3 = Output
Config Portb.4 = Output
Config Pinb.0 = Input


Dim Anzahlmodi As Integer
Dim Modus As Byte

Modus = 1
Anzahlmodi = 3

                                                            '### Alle Variablen können als Byte deklariert werden (spart Speicher im kleinen Tiny13)

                                                            '### Der Timer0 wird für die Blink- bzw. Schaltfrequenz konfiguriert

Compare0a = 116                                             '99,84ms Interruptperiode bei 1,2MHz µC-Takt
Config Timer0 = Timer , Prescale = 1024 , Clear_timer = 1   'Timer0 im Clear Timer on Comparematch

On Compare0a Isr_blink                                      'ISR wird bei Compare Match A aufgerufen

                                                            '### In der Haupschleife steht nur die Tastenabfrage inclusive Tastenentprellung

Do                                                          'Beginn Hauptschleife
  Debounce Pinb.0 , 1 , Changemodus , Sub                   'Führt Unterprogramm aus, wenn Pinb.0 auf 1 wechselt
Loop                                                        'Ende Hauptschleife

                                                            '### Nach Tastendruck wird dieses Unterprogramm ausgeführt, daß den Lichteffekt weiterschaltet und
                                                            '### die nötigen Parameter für die Interruptserviceroutine setzt.

Changemodus:                                                'Unterprogramm setzt Werte für Lichteffekt nach Tastendruck
  Disable Compare0a                                         'Vermeidet Inkonsistenzen in der ISR
  If Modus < Anzahlmodi Then Incr Modus Else Modus = 1
  Select Case Modus
    Case 1 : Anzahlphasen = 0                               'Muß Anzahl der Daten in den DATA-Zeilen entsprechen
    Case 2 : Anzahlphasen = 5                               'Wert von 0 = ein Eintrag, 5 = sechs Einträge bei DATA
    Case 3 : Anzahlphasen = 1                               '.
  End Select
  Phase = 0
  Enable Compare0a
Return


                                                            '### In der Interruptserviceroutine wird alle 100ms das neue Schaltmuster für die LEDs gelesen und
                                                            '### die LEDs geschaltet.

Isr_blink:                                                  'wird alle ca. 100ms aufgerufen und schaltet die LEDs
  If Phase < Anzahlphasen Then Incr Phase Else Phase = 0    'setzt die nächste Effektphase
  Select Case Modus                                         'entsprechend dem Modus wird das Bitmuster für LEDs geholt
    Case 1 : Pattern = Lookup(phase , Lichteffekt1)
    Case 2 : Pattern = Lookup(phase , Lichteffekt2)
    Case 3 : Pattern = Lookup(phase , Lichteffekt3)
  End Select
  Portb.1 = Pattern.3                                       'LED wird geschaltet
  Portb.2 = Pattern.2                                       'LED wird geschaltet
  Portb.3 = Pattern.1                                       'LED wird geschaltet
  Portb.4 = Pattern.0                                       'LED wird geschaltet
Return
End                                                         'end program


                                                            '### Hier sind die Schaltmuster abgelegt.

Lichteffekt1:
Data &B0000

Lichteffekt2:
Data &B1010 , &B1001 , &B1010 , &B0101 , &B0110 , &B0101

Lichteffekt3:
Data &B1111 , &B0000

Hab ich da was falsch kopiert? Folgende Fehlermeldung kommt. Klicke auf die Grafik für eine größere Ansicht

Name:	Unbenannt.PNG
Hits:	5
Größe:	12,3 KB
ID:	29136


Code:
Compare0a = 116                                             '99,84ms Interruptperiode bei 1,2MHz µC-Takt
Config Timer0 = Timer , Prescale = 1024 , Clear_timer = 1   'Timer0 im Clear Timer on Comparematch

On Compare0a Isr_blink                                      'ISR wird bei Compare Match A aufgerufen
Und könntest du mir diesen Bereich etwas genauer erklären?

Gruß Glenn