JimmyAndersson skrev:
Men varför den fastnar i en loop när man räknar ner med en for-loop förstår jag fortfarande inte. Notera att $step_down är -10. Därav plustecknet i $i+=$step_down. Har även provat att skriva $i-=10 med samma resultat.
Som sagt, logiska tankevurpor...

Koden från första inlägget i denna tråd fungerar ypperligt på min server,
så länge startposition är större än position.
Följande kod:
Kod: Markera allt
<?php
echo "Test 1:<p>";
$startposition = 200;
$position = 100 ;
$step = 20;
for ($i = $startposition; $i >= $position; $i -= $step)
{
echo $i.", ";
}
echo "<p>End of test 1.<p><p>";
echo "Test 2:<p>";
$startposition = 200;
$position = 100;
$step = -20;
for ($i = $startposition; $i >= $position; $i += $step)
{
echo $i.", ";
}
echo "<p>End of test 2.<p><p>";
echo "Test 3:<p>";
$startposition = 100;
$position = 200;
$step = 20;
for ($i = $startposition; $i >= $position; $i -= $step)
{
echo $i.", ";
}
echo "<p>End of test 3.<p><p>";
?>
...ger följande output från min server:
Kod: Markera allt
Test 1:
200, 180, 160, 140, 120, 100,
End of test 1.
Test 2:
200, 180, 160, 140, 120, 100,
End of test 2.
Test 3:
End of test 3.
Ett par andra tankar kring ert servoprojekt:
Varför skicka alla steps till servot, varför inte bara skicka den nya positionen? Hastigheten, med vilken den kommer att panorera, kommer ju att bero på baudraten... vilket kanske inte är så snyggt.
Hade ju varit betydligt vackrare att skicka "ny position" och "hastighet" till mikrokontrollern, som i sin tur sköter steglängd/hastighet.
Edit: La till "Test 3" för att visa vad som händer när startposition < position.