Herzlich Willkommen im einzigen (deutschsprachigem) Picaxe-Forum.

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

Software

RE: Zeitproblem

 von Naubaddi , 07.02.2020 20:01

Hi Karlsson,

für den Blinker/Warnblinker habe ich 3 MultiTask eingerichtet um den Zeitproblemen aus dem Weg zu gehen, nicht professionell aber es funktioniert. Vielleicht hilft Dir ein Blick in mein Programm:

Multitask für den Zeitzähler stoppen <-- damit wird der Warnblinker eingeschaltet wenn man länger als 3 Sekunden den rechten Steuerhebel für rauf/runter festhält. Blinker/Warnblinker werden unabhängig vom Lenkservo bei mir geschaltet.

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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
 
; picaxe08m2 ;	automatische Compilerauswahl für gedit
; Dateiname: Blinker Warnblinker.axe
; Funktion: Das Signal von einem RC-Empfänger auswerten für Blinker/Warnblinker (z.B. für RC-Autos)
; Datum: Start 30.01.2016, Stand 25.02.2016
; Von: Naubaddi foto-schubser@arcor.de
;
; PICAXE 08M2 Alle Pin Funktionen (C.0 nur Ausgang, C.3 nur Eingang)
;
; +---v---+
; +V |1 8| 0V
; RxD/I C.5 |2 7| C.0 O/TxD/hserout/DAC
; Touch/ADC/O/I C.4 |3 6| C.1 I/O/ADC/Touch/hserin/SRI/hi2c/scl
; I C.3 |4 5| C.2 I/O/ADC/Touch/pwm/tune/SRQ/hi2c sda
; +-------+
;
suspend 1 ; Multitask für den Blinker links stoppen
suspend 2 ; Multitask für den Blinker rechts stoppen
suspend 3 ; Multitask für den Zeitzähler stoppen
;
pause 1000 ; x Milisekunden Pause damit das System sich beruhigen kann
;
symbol links = C.2 ; Ausgang für den Blinker links
symbol rechts = C.1 ; Ausgang für den Blinker rechts
symbol RC_Kanal = C.3 ; Eingang für einen Kanal vom Empfänger
symbol RC_Signal = w0 ; das Signal vom Empfänger, links > Mitte + xy, Mitte = X, rechts < Mitte - xy (75-225)
symbol Mitte = b2 ; die Mittelstellung
symbol Blinkinterval = b3 ; Blinkinterval in Milisekunden
symbol links_ein = b4 ; Blinker links ein/aus
symbol rechts_ein = b5 ; Blinker rechts ein/aus
symbol Zeit_z = b6 ; Zeitzähler für Warnblinker ein
symbol xy = b7 ; Schaltpunkt plus/Minus von der Mittelstellung
symbol dumm = b8 ; eine Variable für alles Mögliche
;
Blinkinterval = 100 ; Blinkinterval auf x Milisekunden setzen
links_ein = 0 ; Blinker links aus
rechts_ein = 0 ; Blinker rechts aus
low links ; Blinker links ausschalten
low rechts ; Blinker rechts ausschalten
Zeit_z = 0 ; Zeitzähler für Warnblinker ein auf 0 setzen
xy = 30 ; Schaltpunkt plus/Minus von der Mittelstellung
;
pulsin RC_Kanal, 1, Mitte ; die Mittelstellung übernehmen (ca. 150)
;
RC_Blinker_Warnblinker: ; Hauptschleife Blinker/Warnblinker (das RC Signal vom Empfänger auswerten)
;
pulsin RC_Kanal, 1, RC_Signal ; RC Signal übernehmen
dumm = Mitte - xy ; Mittelstellung - xy für links blinken
;
if RC_Signal < dumm then ; wenn es ein RC Signal für links gibt
if links_ein = 0 then ; wenn der Blinker links aus ist
rechts_ein = 0 ; Blinker rechts auf aus setzen
pause Blinkinterval ; x Milisekunden Pause damit nicht beide Blinker an sind
links_ein = 1 ; Blinker links auf ein setzen
restart 1 ; Multitask Blinker links neu starten
else ; sonst
links_ein = 0 ; Blinker links auf aus setzen
rechts_ein = 0 ; Blinker rechts auf aus setzen (falls der Warnblinker ein ist)
suspend 1 ; Multitask für den Blinker/Warnblinker stoppen, wird im Moment nicht gebraucht
suspend 2 ; Multitask für den Blinker/Warnblinker stoppen, wird im Moment nicht gebraucht
low links ; Blinker links ausschalten
low rechts ; Blinker rechts ausschalten
endif ; Ende von: links_ein
Zeit_z= 0 ; Zeitzähler auf 0 setzen
restart 3 ; Multitask Zeitzähler neu starten
do ; Warteschleife
if links_ein = 1 and Zeit_z > 4 then ; nach 4 mal blinken den Warnblinker einschalten
rechts_ein = 1 ; Blinker rechts auf ein setzen
restart 1 ; Multitask Blinker links neu starten
restart 2 ; Multitask Blinker rechts neu starten
endif ; Ende von: links_ein und Zeit_z
pulsin RC_Kanal, 1, RC_Signal ; RC Signal übernehmen
loop until RC_Signal > dumm ; Ende von: do (Warteschleife)
suspend 3 ; Multitask Zeitzähler stoppen
endif ; Ende von: RC_Signal_auswerten
;
pulsin RC_Kanal, 1, RC_Signal ; RC Signal übernehmen
dumm = Mitte + xy ; Mittelstellung + xy für rechts blinken
;
if RC_Signal > dumm then ; wenn es ein RC Signal für rechts gibt
if rechts_ein = 0 then ; wenn der Blinker rechts aus ist
links_ein = 0 ; Blinker links auf aus setzen
pause Blinkinterval ; x Milisekunden Pause damit nicht beide Blinker an sind
rechts_ein = 1 ; Blinker rechts auf ein setzen
restart 2 ; Multitask Blinker rechts neu starten
else ; sonst
rechts_ein = 0 ; Blinker rechts auf aus setzen
links_ein = 0 ; Blinker links auf aus setzen (falls der Warnblinker ein ist)
suspend 2 ; Multitask für den Blinker/Warnblinker stoppen, wird im Moment nicht gebraucht
suspend 1 ; Multitask für den Blinker/Warnblinker stoppen, wird im Moment nicht gebraucht
low rechts ; Blinker rechts ausschalten
low links ; Blinker links ausschalten
endif ; Ende von: rechts_ein
Zeit_z = 0 ; Zeitzähler auf 0 setzen
restart 3 ; Multitask Zeitzähler neu starten
do ; Warteschleife
if rechts_ein = 1 and Zeit_z > 4 then ; nach 4 mal blinken den Warnblinker einschalten
links_ein = 1 ; Blinker links auf ein setzen
restart 2 ; Multitask Blinker rechts neu starten
restart 1 ; Multitask Blinker links neu starten
endif ; Ende von: links_ein und Zeit_z
pulsin RC_Kanal, 1, RC_Signal ; RC Signal übernehmen
loop until RC_Signal < dumm ; Ende von: do (Warteschleife)
suspend 3 ; Multitask Zeitzähler stoppen
endif ; Ende von: RC_Signal
;
goto RC_Blinker_Warnblinker ; Ende von: RC_Blinker_Warnblinker
;
start1: ; Multitask für den Blinker links
if links_ein = 1 then ; wenn der Blinker eingeschaltet ist
high links ; Blinker links einschalten
pause Blinkinterval ; x Millisekunden Pause
low links ; Blinker links ausschalten
pause Blinkinterval ; x Millisekunden Pause
endif ; Ende von: links_ein
goto start1 ; Ende von: start1
;
start2: ; Multitask für den Blinker rechts
if rechts_ein = 1 then ; wenn der Blinker eingeschaltet ist
high rechts ; Blinker rechts einschalten
pause Blinkinterval ; x Millisekunden Pause
low rechts ; Blinker rechts ausschalten
pause Blinkinterval ; x Millisekunden Pause
endif ; Ende von: rechts_ein
goto start2 ; Ende von: start2
;
start3: ; Multitask Zeitzähler
pause Blinkinterval ; x Millisekunden Pause
Zeit_z = Zeit_z + 1 ; Zeitzähler um 1 erhöhen
goto start3 ; Ende von: start3
;
 



Grüßle, Naubaddi


Naubaddi
Beiträge: 288
Registriert am: 29.01.2019

Themen Überblick

Betreff Absender Datum
Zeitproblem Karlsson 07.02.2020
RE: Zeitproblem Naubaddi 07.02.2020
RE: Zeitproblem BoomBoomMagic 08.02.2020
RE: Zeitproblem BoomBoomMagic 08.02.2020
RE: Zeitproblem Karlsson 09.02.2020
RE: Zeitproblem Naubaddi 09.02.2020
RE: Zeitproblem Naubaddi 09.02.2020
RE: Zeitproblem BoomBoomMagic 09.02.2020
RE: Zeitproblem Naubaddi 09.02.2020
RE: Zeitproblem Naubaddi 09.02.2020
RE: Zeitproblem BoomBoomMagic 09.02.2020
RE: Zeitproblem Naubaddi 09.02.2020
RE: Zeitproblem Naubaddi 09.02.2020
RE: Zeitproblem BoomBoomMagic 09.02.2020
RE: Zeitproblem Naubaddi 09.02.2020
RE: Zeitproblem BoomBoomMagic 09.02.2020
RE: Zeitproblem Karlsson 09.02.2020
RE: Zeitproblem Naubaddi 09.02.2020
RE: Zeitproblem Karlsson 09.02.2020
RE: Zeitproblem Naubaddi 09.02.2020
RE: Zeitproblem BoomBoomMagic 10.02.2020
RE: Zeitproblem Karlsson 10.02.2020
RE: Zeitproblem BoomBoomMagic 10.02.2020
RE: Zeitproblem Karlsson 10.02.2020
RE: Zeitproblem BoomBoomMagic 10.02.2020
RE: Zeitproblem Karlsson 10.02.2020
RE: Zeitproblem BoomBoomMagic 10.02.2020
RE: Zeitproblem Karlsson 10.02.2020
RE: Zeitproblem BoomBoomMagic 10.02.2020
RE: Zeitproblem Karlsson 10.02.2020
RE: Zeitproblem Naubaddi 10.02.2020
RE: Zeitproblem BoomBoomMagic 11.02.2020
RE: Zeitproblem BoomBoomMagic 11.02.2020
RE: Zeitproblem Naubaddi 11.02.2020
RE: Zeitproblem BoomBoomMagic 11.02.2020
RE: Zeitproblem BoomBoomMagic 11.02.2020
RE: Zeitproblem Naubaddi 11.02.2020
RE: Zeitproblem BoomBoomMagic 11.02.2020
RE: Zeitproblem Naubaddi 11.02.2020
RE: Zeitproblem Naubaddi 11.02.2020
RE: Zeitproblem BoomBoomMagic 11.02.2020
RE: Zeitproblem Karlsson 11.02.2020
RE: Zeitproblem BoomBoomMagic 11.02.2020
RE: Zeitproblem Karlsson 11.02.2020
RE: Zeitproblem Naubaddi 12.02.2020
RE: Zeitproblem BoomBoomMagic 12.02.2020
RE: Zeitproblem Naubaddi 12.02.2020
RE: Zeitproblem Naubaddi 12.02.2020
RE: Zeitproblem Karlsson 12.02.2020
RE: Zeitproblem Karlsson 15.02.2020
 

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