Warum nehme ich denn z.B Interger und nicht Word? Das hab ich irgentwie noch nie verstanden.
Hier mal der Code wie es immoment aussieht. Aber das geht nicht weil ich Timervorgabe keinem Wert zugewiesen habe und ich wiess auch echt nicht genau wie und wo ich das machen soll.
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 Dim Schneller As Byte Dim Timervorgabe As Double On Timer1 Ontimer1 Config Timer1 = Timer , Prescale = 64 'Timertakt = Crystal / 64 Enable Timer1 'Timer1 einschalten Enable Interrupts 'Interrupts Global einschalten '###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 Speed Alias Pind.2 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 Debounce Speed , 0 , S_change , Sub Gosub Pr_wechsel Loop '###OnTimer1### Ontimer1: Timer1 = Timervorgabe If Zler >= 3 Then 'Wenn Zler = 10 dann... Zler = 0 '...Zler = 1 End If Incr Zler 'Zler + 1 Return '###Unterprogramme### S_change: If Schneller = 3 Then Schneller = 0 End If Incr Schneller If Schneller = 0 Then Timervorgabe = 7936 End If If Schneller = 1 Then Timervorgabe = 36736 End If If Schneller = 2 Then Timervorgabe = 46336 End If Return 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







Zitieren

Lesezeichen