Ich noch mal, habe das Programm mal auf meine Art erstellt, es ist ein Taschenroman geworden ;-). Ich mag halt die unnötigen Vorbelegungen von Variablen...
Zum Programm, das Signal für den Blinker wird vom Lenkservo genommen und für die Bremse vom Fahrtregler, für das Rundumlicht wird am Anfang eine 1 oder eine 0 übergeben weil keine Ahnung wo das Signal herkommt.
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
; picaxe14m2 ; automatische Compilerauswahl für gedit
; Dateiname: Karlsson.axe
; Funktion: Signale von einem RC-Empfänger auswerten für Blinker, Rundumlicht und Bremslicht
; RC-Signal 75 links, 150 Mitte, 225 rechts
; Datum: Start 08.02.2020, Stand 08.02.2020
; Von: Naubaddi foto-schubser@arcor.de
;
; PICAXE 14M2 (B.0 nur Ausgang, C.3, C.5 nur Eingang)
;
; +---v---+
; +V |1 14| 0V
; RxD /I C.5 |2 13| B.0 O /TxD/hserout/DAC
; Touch/ADC/ I/O C.4 |3 12| B.1 I/O /ADC/Touch/SRI/hserin
; I C.3 |4 11| B.2 I/O /ADC/Touch/pwm/tune/SRQ
; kb clk/hpwm A/pwm/ I/O C.2 |5 10| B.3 I/O /ADC/Touch/hi2c scl
; kb data/hpwm B/ I/O C.1 |6 9| B.4 I/O /ADC/Touch/pwm/hi2c sda
; hpwm C/pwm/Touch/ADC/ I/O C.0 |7 8| B.5 I/O /ADC/Touch/hpwm D
; +-------+
;
pause 1000 ; eine Pause für die RC-Elektrik
;
symbol Bremse = C.0 ; Ausgang für das Bremslicht
symbol links = C.1 ; Ausgang für den Blinker links
symbol rechts = C.2 ; Ausgang für den Blinker rechts
symbol RC_Kanal = C.3 ; Eingang für einen Kanal vom Empfänger
symbol RC_Bremse = C.4 ; Eingang für einen Kanal vom Empfänger
symbol RC_Signal = b0 ; das Signal vom Empfänger
symbol Mitte = b1 ; die Mittelstellung
symbol links_S = b2 ; Schaltpunkt links
symbol rechts_S = b3 ; Schaltpunkt rechts
symbol Blinkinterval = b4 ; Blinkinterval in Milisekunden
symbol links_ein = b5 ; Blinker links ein/aus
symbol rechts_ein = b6 ; Blinker rechts ein/aus
symbol Rundumlicht = b7 ; Rundumlicht 4 LEDs
;
Blinkinterval = 99 ; Blinkinterval auf x Milisekunden setzen
links_ein = 0 ; Blinker links aus
low links ; Blinker links ausschalten
rechts_ein = 0 ; Blinker rechts aus
low rechts ; Blinker rechts ausschalten
Rundumlicht = 1 ; Rundumlicht aus
low b.1 : low b.2 : low b.3 : low b.4 ; Rundumlicht ausschalten
high Bremse ; Bremslicht einschalten
;
Mitte = 150 ; pulsin RC_Kanal, 1, Mitte ; die Mittelstellung übernehmen
;
links_S = Mitte - 7 ; der Schaltpunkt für links
rechts_S = Mitte + 7 ; der Schaltpunkt für rechts
;
Karlsson:
;
pulsin RC_Bremse, 1, RC_Signal ; RC-Signal vom Fahrtregler abfragen
;
if RC_Signal < links_S or RC_Signal > rechts_S then ; Bremslicht einschalten oder ausschalten?
low Bremse
else
high Bremse
endif
;
pulsin RC_Kanal, 1, RC_Signal ; RC-Signal vom Lenkservo abfragen
;
if RC_Signal < links_S or RC_Signal > rechts_S then
if RC_Signal < links_S then ; Blinker links ein/aus
if links_ein = 0 then
rechts_ein = 0
links_ein = 1
else
links_ein = 0
rechts_ein = 0
endif
else ; Blinker rechts ein/aus
if rechts_ein = 0 then
links_ein = 0
rechts_ein = 1
else
rechts_ein = 0
links_ein = 0
endif
endif
do ; warten bis kein Signal mehr anliegt
pulsin RC_Kanal, 1, RC_Signal
loop until RC_Signal > links_S and RC_Signal < rechts_S
endif
;
goto Karlsson
;
start1: ; Multitask für das Blinken
if links_ein = 1 then : high links : endif
if rechts_ein = 1 then : high rechts : endif
pause Blinkinterval
low links
low rechts
pause Blinkinterval
goto start1
;
start2: ; Multitask für das Rundumlicht
if Rundumlicht = 1 then
low b.4 : high b.1 : pause 99
low b.1 : high b.2 : pause 99
low b.2 : high b.3 : pause 99
low b.3 : high b.4 : pause 99
else
low b.1 : low b.2 : low b.3 : low b.4
endif
goto start2
;
Grüßle, Naubaddi