Herzlich Willkommen im einzigen (deutschsprachigem) Picaxe-Forum.

Der Ursprung dieses Forum reicht bis in das Jahr 2008 zurück


Seltsames Verhalten des 20m2

#1 von Remo , 25.07.2020 20:03

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 ?

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
 
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
 




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
 

Remo  
Remo
Beiträge: 6
Registriert am: 25.07.2020


RE: Seltsames Verhalten des 20m2

#2 von BoomBoomMagic , 26.07.2020 10:26

Hallo Remo ,

ich vermute mal , das Du die Bedingung mehr konkretisieren mußt.

Nehmen wir mal an w2 oder X_Achse ist 1.
Dann soll ja bestenfalls folgende IF Anweisung reagieren :
if X_Achse <2 then gosub LED_AchsenEND_ein ; Pink & Orange

Tja, da aber vorher :
if X_Achse <200 then gosub LED_Links_ein ; Green
was ja auch zutrifft , wird diese zuerst reagieren !

Also entweder machst die IF genau :
if X_Achse <200 and X_Achse >10 then gosub LED_AchsenEND_ein

Oder begrenzt es mit Select case


1
2
3
4
5
6
7
8
9
10
11
12
 

Select case w2
 
case 10 to 200
LED_Links_ein
 
case 0 to 1
LED_AchsenEND_ein
 
end select
 

 



so würde ich das jetzt sehen.


***Lieber 2x mehr lesen , als 1x dumm fragen ***

 
BoomBoomMagic
Beiträge: 876
Registriert am: 24.01.2019


RE: Seltsames Verhalten des 20m2

#3 von BoomBoomMagic , 26.07.2020 10:37

Desweiteren machst Du ein GOSUB wenn etwas zutrifft , das heißt , er führt etwas aus und kommt zurück.
Wenn dann auch eine Bedingung zutrifft, wird auch diese erfüllt.

So doof das klingt , ich würde mehr GOTO einsetzen anstatt GOSUB.
Entweder grundsätzlich , oder spätestens wenn er vom GOSUB zurück kehrt , GOTO MAIN , bevor die nächste IF kommt,
damit er keine weiteren IF ausführt.


***Lieber 2x mehr lesen , als 1x dumm fragen ***

 
BoomBoomMagic
Beiträge: 876
Registriert am: 24.01.2019

zuletzt bearbeitet 26.07.2020 | Top

RE: Seltsames Verhalten des 20m2

#4 von BoomBoomMagic , 27.07.2020 02:42

So mal eine Rückmeldung wäre ja nicht schlecht ....


***Lieber 2x mehr lesen , als 1x dumm fragen ***

 
BoomBoomMagic
Beiträge: 876
Registriert am: 24.01.2019


RE: Seltsames Verhalten des 20m2

#5 von Remo , 28.07.2020 20:53

Hallo BoomBoomMagic,
erst mal vielen Dank das du dir die Zeit genommen hast meinen Code zu Begutachten.

Remo  
Remo
Beiträge: 6
Registriert am: 25.07.2020


RE: Seltsames Verhalten des 20m2

#6 von Remo , 28.07.2020 20:54

Ich bin leider erst heute Abend dazu gekommen dir zu Antworten. Hätte eh nicht so schnell mit einer Antwort gerechnet.

Remo  
Remo
Beiträge: 6
Registriert am: 25.07.2020


RE: Seltsames Verhalten des 20m2

#7 von BoomBoomMagic , 28.07.2020 20:57

Haste den Code denn schon ein wenig abgeändert ?


***Lieber 2x mehr lesen , als 1x dumm fragen ***

 
BoomBoomMagic
Beiträge: 876
Registriert am: 24.01.2019


RE: Seltsames Verhalten des 20m2

#8 von Remo , 28.07.2020 20:58

Der Tipp mit dem "select case" habe noch nicht ausprobiert, scheint aber in der Tat übersichtlicheren code zu machen. Sobald ich mich daran mache den 20m2 daraufhin zu Programmieren werde ich mich in diesem Forum
wieder melden. Ciao Remo

Remo  
Remo
Beiträge: 6
Registriert am: 25.07.2020


RE: Seltsames Verhalten des 20m2

#9 von Remo , 29.07.2020 22:17

Heureka .. Es funktioniert !

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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
 
1
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 main:
9 readadc C.2, b1
10 ;debug
11
12 select case b1
13
14 case 150 to 180
15 gosub LED_Links_ein
16
17 case 129 to 149
18 gosub LED_Links_Aus
19
20 case 220 to 255
21 gosub LED_AchsenEND_ein
22
23 case 200 to 219
24 gosub LED_AchsenEND_aus
25
26
27
28 case 88 to 108
29 gosub LED_Rechts_ein
30
31 case 109 to 127
32 gosub LED_Rechts_aus
33
34 case 0 to 68
35 gosub LED_AchsenEND_ein
36
37 case 69 to 89
38 gosub LED_AchsenEND_aus
39
40 endselect
41 goto main
42
43
44
45
46
47
48 LED_Links_ein:
49 High B.0 ; LED Green
50 return
51
52 LED_Links_Aus:
53 low B.0 ; LED Green
54 return
55
56 LED_Rechts_ein:
C:\Users\Frodo\Desktop\BASIC--Progs\simulation joysticksteuerung funktioniert !.bas
Seite 1 von 2
57 high B.3 ; LED Yellow
58 return
59
60 LED_Rechts_aus:
61 low B.3 ; LED Yellow
62 return
63
64
65 LED_AchsenEND_ein:
66 high B.5 ; LED Pink
67 high B.6 ; LED Orange
68 return
69
70 LED_AchsenEND_aus:
71 low B.5 ; LED Pink
72 low B.6 ; LED Orange
73 return
74
C:\Users\Frodo\Desktop\BASIC--Progs\simulation joysticksteuerung funktioniert !.bas
Seite 2 von 2
 



Angefügte Bilder:
Aufgrund eingeschränkter Benutzerrechte werden nur die Namen und (falls vorhanden) Vorschau-Grafiken der Dateianhänge angezeigt Jetzt anmelden!
simulation joysticksteuerung.PNG  
Remo  
Remo
Beiträge: 6
Registriert am: 25.07.2020


RE: Seltsames Verhalten des 20m2

#10 von Remo , 29.07.2020 22:20

[img][/img]

Remo  
Remo
Beiträge: 6
Registriert am: 25.07.2020


RE: Seltsames Verhalten des 20m2

#11 von BoomBoomMagic , 30.07.2020 00:50

Na , das ist doch sehr schön wenn es denn jetzt nach Deinen Wünschen funktioniert. :-)


***Lieber 2x mehr lesen , als 1x dumm fragen ***

 
BoomBoomMagic
Beiträge: 876
Registriert am: 24.01.2019


   

Rechteckgenerator auf Tastendruck
Motorgeräusch

Picaxe Editor 5.5.5 Download
Update auf Picaxe Editor 5.5.6 Download
Picaxe Editor 6.x.x.x Download
Manual1.pdf        -      Grundwissen Download
Manual2.pdf        -      Befehle Download
Manual3.pdf        -      Beispiele Download


Press [Backspace] for back to Menu


Counter
Xobor Forum Software ©Xobor.de | Forum erstellen
Datenschutz