Hallo PicAxe Fans:
ich bin beim Programmieren auf ein merkwürdiges Verhalten
des 20M2 gestoßen. Zur Erklärung: Das Programm
JoystickLEDs_1.bas soll die X-Achse eines Daumen-Joysticks
analog einlesen.
In Nullstellung des Knüppels beträgt der Analogwert = 511
Wenn ich den Knüppel nun etwas nach Links bewege soll die grüne
LED leuchten. Bewege ich den Knüppel noch weiter nach Links bis
fast zum Endanschlag sollen die pinke und die orange LED
leuchten.
Dies funktioniert auch wie gewollt. Soweit so gut.
ABER:
Ich erweitere das Programm siehe JoystickLEDs_2.bas damit die
gelbe LED leuchtet wenn ich den Knüppel etwas nach Rechts
bewege und die pinke und orange LED leuchten wenn ich den
Knüppel bis zum rechten Endanschlag bewege.
Nun zeigt sich aber das die pinke und orange LED nicht mehr so
normal leuchten wie bei JoystickLEDs_1.bas sondern schwach
flackern. Bewege ich den Knüppel jetzt ganz nach links flackern die
beiden LEDs ebenfalls schwach was sie beim ersten Programm
nicht getan haben. Mir ist dieses komische Verhalten schleierhaft
und dürfte laut Programmlogik gar nicht passieren.
Woran liegt das ?
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
1 ; PICAXE--20M2 --> Joystick-LEDs
2
3 let dirsC = 00000000 ; Port-C als Eingang
4
5 let dirsB = %11111111 ; Port-B als Ausgang
6 let pinsB = %00000000 ; Ausgangsport-B auf low
7
8 symbol X_Achse = w2 ; Left=1 , Center=511 , Right=1023
9
10
11 main:
12 readadc10 C.2, w2
13 debug
14
15
16 if X_Achse <200 then gosub LED_Links_ein ; Green
17 if X_Achse <2 then gosub LED_AchsenEND_ein ; Pink & Orange
18 if X_Achse >2 then gosub LED_AchsenEND_aus
19 if X_Achse >200 then gosub LED_Links_Aus
20
21 goto main
22
23
24
25 LED_Links_ein:
26 High B.0 ; LED Green
27 return
28
29 LED_Links_Aus:
30 low B.0 ; LED Green
31 return
32
33
34 LED_AchsenEND_ein:
35 high B.5 ; LED Pink
36 high B.6 ; LED Orange
37 return
38
39 LED_AchsenEND_aus:
40 low B.5 ; LED Pink
41 low B.6 ; LED Orange
42 return
43
C:\Users\Frodo\Desktop\BASIC--Progs\JoystickLEDs_1.bas
Seite 1 von 1
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
1 ; PICAXE--20M2 --> Joystick-LEDs
2
3 let dirsC = 00000000 ; Port-C als Eingang
4
5 let dirsB = %11111111 ; Port-B als Ausgang
6 let pinsB = %00000000 ; Ausgangsport-B auf low
7
8 symbol X_Achse = w2 ; Left=1 , Center=511 , Right=1023
9
10
11 main:
12 readadc10 C.2, w2
13 debug
14
15
16 if X_Achse <200 then gosub LED_Links_ein ; Green
17 if X_Achse <2 then gosub LED_AchsenEND_ein ; Pink & Orange
18 if X_Achse >2 then gosub LED_AchsenEND_aus
19 if X_Achse >200 then gosub LED_Links_Aus
20
21 if X_Achse >700 then gosub LED_Rechts_ein ; Yellow
22 if X_Achse >1022 then gosub LED_AchsenEND_ein ; Pink & Orange
23 if X_Achse <1022 then gosub LED_AchsenEND_aus
24 if X_Achse <700 then gosub LED_Rechts_aus
25
26 goto main
27
28
29
30 LED_Links_ein:
31 High B.0 ; LED Green
32 return
33
34 LED_Links_Aus:
35 low B.0 ; LED Green
36 return
37
38 LED_Rechts_ein:
39 high B.3 ; LED Yellow
40 return
41
42 LED_Rechts_aus:
43 low B.3 ; LED Yellow
44 return
45
46
47 LED_AchsenEND_ein:
48 high B.5 ; LED Pink
49 high B.6 ; LED Orange
50 return
51
52 LED_AchsenEND_aus:
53 low B.5 ; LED Pink
54 low B.6 ; LED Orange
55 return
56
C:\Users\Frodo\Desktop\BASIC--Progs\JoystickLEDs_2.bas
Seite 1 von 2