ach ratber... keine sorge, mir gehen nur extra-sensible aufn geist ^^

so, hier iss das programm so wies gehen würde:

Code:
'###################################################
'#Lauflichtsteuerung mit 3 Verschiedenen Programmen#
'###################################################


$regfile = "M8def.dat"
$crystal = 3686400

Ddrd = &B11100000                                           'PD7, PD6, PD5 als Ausgänge festlegen, rest Eingang
Portd = &B00001100                                          'PullUps von PD2, PD3 Aktivieren

Dim Zler As Byte
Dim Pr1_3 As Byte

On Timer1 Ontimer1
Config Timer1 = Timer , Prescale = 64                       'Timertakt = Crystal / 64
Enable Timer1                                               'Timer1 einschalten
Enable Interrupts                                           'Interrupts Global einschalten
Const Timervorgabe = 36736                                  'Hat mir rnAVR so berechnet


'###Deklarationen###

Led_gr Alias Portd.7                                        'LED Grün
Led_ge Alias Portd.6                                        'LED Gelb
Led_ro Alias Portd.5                                        'LED Rot
Prwata Alias Pind.3                                         'Programmwahltaster

Declare Sub Pr_1
Declare Sub Pr_2
Declare Sub Pr_3


'###Hauptschleife###

Do
Debounce Prwata , 0 , Pr_wechs , Sub                        'Programmwahltaster entprellen und zu Pr_wechsel springen
Gosub Pr_wechsel
Loop

'###OnTimer1###

Ontimer1:
Timer1 = Timervorgabe
If Zler = 10 Then                                           'Wenn Zler = 9 dann...
Zler = 1                                                    '...Zler = 0
End If
Incr Zler                                                   'Zler + 1

Return





'###Unterprogramme###
Pr_wechs:
   Incr Pr1_3
   Gosub Pr_wechsel
Return


Pr_wechsel:

If Pr1_3 = 3 Then                                           'Wenn Pr1_3 = 2 dann...
 Pr1_3 = 0                                                  '...Pr1_3 = 0
End If

If Pr1_3 = 0 Then                                           'Wenn Pr1_3 = 0 dann...
 Gosub Pr_1
End If                                                      '...zum Sub PR_1 springen

If Pr1_3 = 1 Then                                           'Wenn Pr1_3 = 1 dann...
 Gosub Pr_2                                                 '...zum sub PR_2 springen
End If

If Pr1_3 = 2 Then
 Gosub Pr_3
End If

Return

'----------------

Pr_1:

Return


'---------------

Pr_2:

Return

'---------------

Pr_3:

Return
ich hoffe es geht auch ^^

Martin