Eine Funktion in einer festgelegten Anzahl ausführen

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!

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

cool, Danke :slight_smile:

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ß

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

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

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ß

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

Da nächste Mal schreibe ich zur Verwirrung:

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

[quote author=Udo Klein link=topic=89880.msg674552#msg674552 date=1328124589] 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 ;)[/quote] 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

[quote author=Udo Klein link=topic=89880.msg674554#msg674554 date=1328124743] Da nächste Mal schreibe ich zur Verwirrung:

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

[/quote] Ok, ich geb's zu, Du hast gewonnen. ;) ;)

uwefed:

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ß

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