PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mehrere and zusammenfassen?



TobiasBlome
12.04.2008, 00:49
Hallo,
kann ich irgendwie die and´s kürzer schreiben?
ich habe sonst 10 mal and hintereinander....



'----------------
If Taster1 > 0 And Taster2 > 0 And Taster3 > 0 And Taster4 > 0 Then
Taster = 0
End If
'----------------

Tobias

Gento
12.04.2008, 05:21
Ja das geht
In der Art ,sind alle Taster auch Null *Grins*

Ein wenig nachdenken sollst Du schon selbst dazu.

lg
Gento

TobiasBlome
12.04.2008, 07:52
Hey Gento ;-)
ich dachte schon das du mir zumindes einen Tipp geben könntest in welcher Richtung ich suchen muss.

geht vielleicht:

if taster1 to taster10 = 0 then
'machen
end if
???

Tobias

_werwurm_
12.04.2008, 19:45
man kann nullen auch addieren ^^

edit: zugegeben.. viel kürzer wird es dann auch nicht:
if taster1+taster2+taster3+taster4+taster5+taster6... +taster10=0 then

for_ro
12.04.2008, 20:39
If Taster1 > 0 And Taster2 > 0 And Taster3 > 0 And Taster4 > 0 Then


Taster1 klingt nach Pinx.y.
Wenn du sie an einem gemeinsamen Port hängen hast, kannst du natürlich auch
If PinX = &B11111111 Then
schreiben.

Oder auch

Taster=PinX Or &B11111000 'die Taster sind an Pinx.0, Pinx.1 und Pinx.2
If Taster = &B11111111 Then

Gruß

Rolf

TobiasBlome
13.04.2008, 19:43
Hallo _werwurm_

tolle Idee! da bin ich noch nicht drauf gekomen. aber du hast recht es wird nicht viel kürzer (weiß natürlich nicht wie das mit der µC Bearbeitungszeit ist???)

@for_ro
Das sind Taster :-)
aber 2 Ports:
PB1-5 PC1-5 -> also 10 Taster

PC0 ist z.B. ein Ausgang und bei PB1 hängt noch ein anderer Schalter. Kann man auch so einen Pin ignorieren?

Abgesehen das deine Version natürlich viel übersichtlicher ist: Kann man damit µC Rechenzeit sparen?

Vielen Dank für eure Antworten,
Gruß, Tobias

for_ro
13.04.2008, 21:30
PB1-5 PC1-5 -> also 10 Taster

Na dann mach es doch so wie oben beschrieben

TasterB=PinB And &B00111110 'oder And 62 oder And &H3E
TasterC=PinC And &B00111110

If TasterB=62 and TasterC=62 Then ...



Abgesehen das deine Version natürlich viel übersichtlicher ist: Kann man damit µC Rechenzeit sparen?


Ein einzelnes Bit abfragen ist immer aufwändiger als ein ganzes Byte.
Im Simulator kannst du sehen, dass
If Pinb.1=1 Then 14 Zyklen braucht, während
IF Pinb =62 Then nur 7 Zyklen benötigt.

Gruß

Rolf

TobiasBlome
14.04.2008, 16:01
besten Dank! das spart ja ganz ganz viele Zyklen!!!