Ok , hier mal der Code :
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
$regfile = "attiny85.dat"
$crystal = 1000000
$hwstack = 16
$swstack = 16
$framesize = 32
config portb.0 = output
config portb.1 = output
config portb.2 = output
config pinb.3 = input
config pinb.4 = input
LED1 alias Portb.0
LED2 alias Portb.1
LED3 alias Portb.2
Taster1 alias pinb.3
dim Check as byte
dim w as byte
Main:
If Taster1=1 then
waitms 50
check=1
endif
if check=1 then
toggle LED1
for w=1 to 10
if Taster1=1 then
check=0
LED1=0
LED2=0
LED3=0
goto main
endif
waitms 10
next w
toggle LED2
for w=1 to 20
if Taster1=1 then
check=0
LED1=0
LED2=0
LED3=0
goto main
endif
waitms 10
next w
toggle LED3
for w=1 to 30
if Taster1=1 then
check=0
LED1=0
LED2=0
LED3=0
goto main
endif
waitms 10
next w
endif
goto Main
end
ALLE Variablen sind bei Start immer = 0
Insofern ist check auch = 0
Sobald den Taster drückst wird check auf 1 gesetzt.
Die nächste IF Anweisung sieht das check=1 ist und wird ausgeführt.
In dieser Anweisung werden nun die LED's an oder aus geschaltet.
Wir nutzen die Pause um die Abfrage nach dem Taster zu machen.
Wir halten die Pause sehr klein im Zusammenhang mit einer FOR NEXT Schleife.
Das stört weder den Ablauf und reicht zum reagieren auf den Taster.
Wird während der IF Anweisung der Taster gedrückt , wird check auf 0 gesetzt , die LED's
alle ausgemacht und wieder nach MAIN gesprungen - das Spiel beginnt von vorn.