ach ratber... keine sorge, mir gehen nur extra-sensible aufn geist ^^
so, hier iss das programm so wies gehen würde:
ich hoffe es geht auch ^^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
Martin







Zitieren
Lesezeichen