Go Down

Topic: Eine Funktion in einer festgelegten Anzahl ausführen (Read 550 times) previous topic - next topic

laemmen

Moin,

ich möchte eine Funktion genau 5 mal ausführen - ich komme aber nicht darauf wie genau ich das anstellen soll. Eine einfache Möglichkeit ist sie 5mal hintereinander zu setzen. Aber es geht doch bestimmt noch effektiver?

Gruß und besten Dank!

Udo Klein

Code: [Select]

for (int times=0; times<5; ++times) {
  // do something
}
Check out my experiments http://blog.blinkenlight.net

laemmen


laemmen

Ich habe noch eine Frage:
wie bekomme ich einen Random-Wert in analogWrite? Ich habe analogWrite(PinX, random); versucht, aber dann kommt cannot resolve overloaded function 'random' based on conversion to type 'int'

Gruß

uwefed


Code: [Select]

for (int times=0; times<5; ++times) {
 // do something
}


Udo wieso schreist Du eigentlich ++times und nicht times++?
In diesem Fall ist das ja gleichbedeutend.
Grüße Uwe

Udo Klein

Weil nach dem ";" der Finger näher am "+" ist als am "t" ;)
Oder weil ich "++times" mit "Inkrement times" im Kopf übersetze. D.h. solange es egal ist schreibe ich fast immer den Operator vorne dran.
Wie Du aber sagst: es ist egal. Was hättest Du gefragt wenn ich es hintendran geschrieben hätte ;)

Check out my experiments http://blog.blinkenlight.net

uwefed


Ich habe noch eine Frage:
wie bekomme ich einen Random-Wert in analogWrite? Ich habe analogWrite(PinX, random); versucht, aber dann kommt cannot resolve overloaded function 'random' based on conversion to type 'int'
Gruß

Random ist eine Funktion und als solche hat sie immer Klammern auch wenn keine Parameter übergeben werden.
Da Du aber Zufallswerte zwischen 0 und 255 haben willst schreibst Du am besten:
analogWrite(PinX, random(255)); oder
analogWrite(PinX, random(0,255));
http://arduino.cc/en/Reference/Random

Grüße Uwe

Udo Klein

Da nächste Mal schreibe ich zur Verwirrung:

Code: [Select]

for (int times = 0x1f; times; times >>= 1) {
   // do something
}
Check out my experiments http://blog.blinkenlight.net

uwefed


Weil nach dem ";" der Finger näher am "+" ist als am "t" ;)
Oder weil ich "++times" mit "Inkrement times" im Kopf übersetze. D.h. solange es egal ist schreibe ich fast immer den Operator vorne dran.
Wie Du aber sagst: es ist egal. Was hättest Du gefragt wenn ich es hintendran geschrieben hätte ;)

Ich hab mir die nachgestellte Syntax angewöhnt wenn beide Versionen gleichbedeutend sind.
Darum hätte ich nichts gesagt. Als alter UPN-ler mit einem HP15C ... ;) ;) ;)
Grüße Uwe

uwefed


Da nächste Mal schreibe ich zur Verwirrung:

Code: [Select]

for (int times = 0x1f; times; times >>= 1) {
   // do something
}


Ok, ich geb's zu, Du hast gewonnen.  ;) ;)

koldomon

#10
Feb 09, 2012, 12:15 pm Last Edit: Feb 09, 2012, 12:53 pm by uwefed Reason: 1
Quote from: uwefed


Ich habe noch eine Frage:
wie bekomme ich einen Random-Wert in analogWrite? Ich habe analogWrite(PinX, random); versucht, aber dann kommt cannot resolve overloaded function 'random' based on conversion to type 'int'
Gruß

Random ist eine Funktion und als solche hat sie immer Klammern auch wenn keine Parameter übergeben werden.
Da Du aber Zufallswerte zwischen 0 und 255 haben willst schreibst Du am besten:
analogWrite(PinX, random(255)); oder
analogWrite(PinX, random(0,255));
http://arduino.cc/en/Reference/Random

Grüße Uwe


und nicht vergessen den randomSeed vorher aufzurufen, sonst sehen deine Zufallszahlen so "geplant" aus.

cu markus

Go Up