Hallo,
ich habe da mal ein kleines Programm mit LED's geschrieben und dabei incr benutzt.
Nur arbeitet das Programm nicht alles nacheinander ab, sondern abwechselnd, bin mir sicher, dass es an den < und > liegt
Hier mein Programm:
Ich habe es auch mit versch. incr versucht, aber das gleiche Problem erhalten:Code:$regfile = "m32def.dat" ' $framesize = 32 '$swstack = 32 '$hwstack = 32 $crystal = 16000000 $baud = 9600 '--------LED----------- Config Porta = Output '--------Taster-------- Config Pinb.0 = Input Portb.0 = 1 Declare Sub Lauflicht Declare Sub Allean Declare Sub Nacheinander Declare Sub Startrek Dim Anzahl As Byte Do If Pinb.0 = 1 Then Incr Anzahl If Anzahl < 25 Then Gosub Lauflicht If Anzahl > 25 Then Gosub Allean If Anzahl > 50 Then Gosub Nacheinander If Anzahl < 50 Then Gosub Startrek If Anzahl = 75 Then Anzahl = 0 End If Loop Sub Startrek Print "Star Trek" Porta.0 = 1 Porta.6 = 1 Waitms 150 Porta.0 = 0 Porta.6 = 0 Porta.1 = 1 Porta.5 = 1 Waitms 150 Porta.1 = 0 Porta.5 = 0 Porta.2 = 1 Porta.4 = 1 Waitms 150 Porta.4 = 0 Porta.2 = 0 Porta.3 = 1 Waitms 150 Porta.3 = 0 Waitms 150 End Sub Return Sub Lauflicht Print "Lauflicht" Porta.0 = 1 Waitms 40 Porta.0 = 0 Porta.1 = 1 Waitms 40 Porta.1 = 0 Porta.2 = 1 Waitms 40 Porta.2 = 0 Porta.3 = 1 Waitms 40 Porta.3 = 0 Porta.4 = 1 Waitms 40 Porta.4 = 0 Porta.5 = 1 Waitms 40 Porta.5 = 0 Porta.6 = 1 Waitms 40 Porta.6 = 0 Porta.5 = 1 Waitms 40 Porta.5 = 0 Porta.4 = 1 Waitms 40 Porta.4 = 0 Porta.3 = 1 Waitms 40 Porta.3 = 0 Porta.2 = 1 Waitms 40 Porta.2 = 0 Porta.1 = 1 Waitms 40 Porta.1 = 0 End Sub Return Sub Allean Print "alle an" Porta.0 = 1 Porta.1 = 1 Porta.2 = 1 Porta.3 = 1 Porta.4 = 1 Porta.5 = 1 Porta.6 = 1 Waitms 250 End Sub Return Sub Nacheinander Print "1.Led " Porta.0 = 1 Porta.1 = 0 Porta.2 = 0 Porta.3 = 0 Porta.4 = 0 Porta.5 = 0 Porta.6 = 0 Waitms 100 Print "2.Led " Porta.0 = 0 Porta.1 = 1 Porta.2 = 0 Porta.3 = 0 Porta.4 = 0 Porta.5 = 0 Porta.6 = 0 Waitms 100 Print "3.Led " Porta.0 = 0 Porta.1 = 0 Porta.2 = 1 Porta.3 = 0 Porta.4 = 0 Porta.5 = 0 Porta.6 = 0 Waitms 100 Print "4.Led " Porta.0 = 0 Porta.1 = 0 Porta.2 = 0 Porta.3 = 1 Porta.4 = 0 Porta.5 = 0 Porta.6 = 0 Waitms 100 Print "5.Led " Porta.0 = 0 Porta.1 = 0 Porta.2 = 0 Porta.3 = 0 Porta.4 = 1 Porta.5 = 0 Porta.6 = 0 Waitms 100 Print "6.Led " Porta.0 = 0 Porta.1 = 0 Porta.2 = 0 Porta.3 = 0 Porta.4 = 0 Porta.5 = 1 Porta.6 = 0 Waitms 100 Print "7.Led " Porta.0 = 0 Porta.1 = 0 Porta.2 = 0 Porta.3 = 0 Porta.4 = 0 Porta.5 = 0 Porta.6 = 1 Waitms 100 End Sub Return End
Habt ihr Lösungsvorschläge oder Tipps, was ich falsch gemacht habe, bin echt dankbar.Code:Declare Sub Lauflicht Declare Sub Allean Declare Sub Nacheinander Declare Sub Startrek Dim A As Byte Dim B As Byte Dim C As Byte Dim D As Byte Do If Pinb.0 = 1 Then Incr A If A < 10 Then Gosub Lauflicht Incr B If B < 10 Then Gosub Allean Incr C If C < 10 Then Gosub Nacheinander Incr D If D < 10 Then Gosub Startrek
Ich bekomme es nicht hin, dass das Unterprogramm "Nacheinander" hinter dem "Allean" und dahinter "Startrek" wirklich abgeschlossen für sich läuft.
Das einzigste gute daran: unkontrolliertes Software Multitasking, aber Multitasking![]()







Zitieren

Lesezeichen