PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Befehl nur bestimte zeit lang ausführen



Christian3
27.06.2009, 16:26
Hallo,
wie krieg ich das hin das der RP6 die funktion nur solange ausführt wie die bedingung eintrift?

#include "RP6RobotBaseLib.h"
int main(void)
{
initRobotBase();


startStopwatch1();
writeString_P("\n\nKleines ADC Messprogramm...\n\n");
powerON();
while(true)
{
if(getStopwatch1() > 300) // Alle 300ms...
{
writeString_P("\nADC1:");
writeInteger(adc1, DEC);
writeString_P("\nADC0: ");
writeInteger(adc0, DEC);
writeChar('\n');

setStopwatch1(0); // Stopwatch1 auf 0 zurücksetzen
if( adc0 < 640)
{



moveAtSpeed(70,30);
}



if( adc0 > 800)
{



moveAtSpeed(30,70);

}

if( adc1 < 450)
{


moveAtSpeed(70,70);

}


if( adc1 > 920)
{

moveAtSpeed(20,20);

}








}


task_motionControl();
task_ADC(); // Wird wegen
} // aufrufen! Dann sollte man aber readADC nicht
return 0; // mehr verwenden!
}






ich hab noch ne frage:

if( adc1 > 729 AND adc1 < 730 )
{


move(000, FWD, DIST_MM(500), true);

}
was is da falsch?

thewulf00
29.06.2009, 06:59
Zum 2. Teil hab ich ne Idee:
Die Bedingung " adc1 > 729 AND adc1 < 730" ist unsinn.
Lies sie Dir nochmal in Ruhe durch:
Er soll also etwas machen, solange adc1 größer als 729 (also 730 und mehr) und kleiner als 730 (also 729 und weniger) ist. Das schließt sich gegenseitig aus. Diese Bedingung ist NIEMALS wahr.

Christian3
30.06.2009, 11:11
Zum 2. Teil hab ich ne Idee:
Die Bedingung " adc1 > 729 AND adc1 < 730" ist unsinn.
Lies sie Dir nochmal in Ruhe durch:
Er soll also etwas machen, solange adc1 größer als 729 (also 730 und mehr) und kleiner als 730 (also 729 und weniger) ist. Das schließt sich gegenseitig aus. Diese Bedingung ist NIEMALS wahr.

stimmt naja die funktion sollte eigentlich nen bestimten bereich sein also das er bei 729 bis 735 eine bestimmte sache ausführt.
lg