Hey,

ich habe mir ein AVR Buch gekauft und bin auch schon ein ganzes stück weiter, blos diese Aufgabe bekomme ich einfach nicht hin. Sitze hier nun schon 6 Stunden am Stück und Probiere. Wäre vielleicht jemand so nett mir zu helfen?

Der Code in meinem Beispiel soll kurz-kurz-lang sein und es soll bei richtiger Eingabe eine Led togglen. Sobald eine Taste falsch eingegeben wurde soll sich alles zurück setzen.


Code:
$regfile = M8def.dat
$crystal = 3686400

Config Portd = Output
Config Portb = Input

Portb = &B000000001

Ledtest Alias Portd.4
Led Alias Portd.3
Taster Alias Pinb.0


'Timer Config (jede 10ms Interrupt)
Enable Timer0
Enable Interrupts
Config Timer0 = Timer , Prescale = 256
Const Timervorgabe = 112
On Timer0 Ueberlauf

Dim Lang As Bit
Dim Kurz As Bit
Dim Zler As Byte
Dim Ged As Bit
Dim Code_lang As Bit
Dim Code_kurz As Bit
Dim Erste_stelle As Bit
Dim Zweite_stelle As Bit



Do

If Kurz = 1 Then                                  'wenn kurz = 1, dann Code_kurz setzen und kurz = 0
Set Code_kurz
Kurz = 0
End If

If Lang = 1 Then                                  'wenn lang = 1, dann Code_lang setzen und lang = 0
Set Code_lang
Lang = 0
End If

If Code_lang = 0 Then                         'Erste Stelle vom Code (Kurz)
If Code_kurz = 1 Then
Set Erste_stelle
Else
Reset Erste_stelle
End If
End If

If Code_lang = 0 Then                         'Zweite Stelle vom Code (Kurz)
If Code_kurz = 1 Then
If Erste_stelle = 1 Then
Set Zweite_stelle
Else
Reset Erste_stelle
Reset Zweite_stelle
End If
End If
End If


If Code_lang = 1 Then                                       'Dritte Stelle vom Code (Lang)
If Code_kurz = 0 Then
If Erste_stelle = 1 Then
If Zweite_stelle = 1 Then
Toggle Led
Else
Reset Erste_stelle
Reset Zweite_stelle
End If
End If
End If
End If



Loop



Ueberlauf:



  Timer0 = Timervorgabe



  If Taster = 0 Then                                        'Wenn Taster gedrückt Zler um einen erhöhen
  Incr Zler
  End If

  If Zler > 100 Then                                        'Wenn Zler größer als 100 "lang" setzen
  Lang = 1
  End If

  If Zler <= 100 Then                                       'Wenn zler kleiner oder gleich 100...
  If Taster = 1 Then                                        '...und der Taser nicht mehr gedrückt ist...
  Kurz = 1                                                  '..."kurz" setzen
  End If
  End If

  If Kurz = 1 Then
  Led = 1
  End If


  If Lang = 1 Then
  Led = 0
  End If




  Return