Edit: quark, bin etwas daneben.Nur mit dem hochzählen möchte es noch nicht so ganz.
du arbeitest ja erst Main1 ab, dann kommt Main2 und dann Main3. dann immer abwechselnd Main2 und Main3. in Main3 incrementierst du Zeit (Zeit+1) nach 100ms, dann kommt wieder Main2 und wieder Main3.
da wird nirgends mit nem "IF Zeit = 5 Then Zeit =0" Zeit zurückgesetzt.
auserdem ist Zeit nirgends ein Wert zugewiesen. du solltest in Main1 "Zeit=0" schreiben.
Die meisten Do-Loops kannst du dir auch spaaren, da das Programm da nie hinkommt (davor wird mit Goto gesprungen)
Code:$regfile = "m16def.dat" $crystal = 16000000 Config Porta.0 = Output Config Portd.7 = Output Config Pina.2 = Input Dim Zeit As Byte Dim A As Byte Dim Main2 As Long Dim Main1 As Long Dim Main3 As Long Main1: Zeit=0 Portd.7 = 1 Waitms 300 Portd.7 = 0 Waitms 300 Portd.7 = 1 Waitms 300 Portd.7 = 0 Goto Main2 Main2: Do If Pina.2 = 0 Then Goto Main3 Else Zeit=0 End if Loop Main3: Do Waitms 100 Zeit = Zeit + 1 If Zeit = 5 Then Porta.0 = 1 Waitms 3000 Porta.0 = 0 End If Waitms 3000 Goto Main2








Zitieren

Lesezeichen