Hallo!
Leider lässt sich dieses in meinen Programm nicht umsetzen.
An für sich erscheint das simpel,aber ich hänge irgendwo fest!
Der Gedanke: Wenn Hindernis vorne liegend, dann Motor stop.Wenn weniger als 10sec.(Hindernis wird entfernt),normal die Linie weiterfahren.
Wenn Hindernis vorne liegend,dann Motor stop und Hindernis länger als 10 sec.dort liegt, dann um 180° wenden.
Mein Problem ist: Ich bekome die Zeit oder Zählung nicht eingebaut.Mit einer "while-schleife" klappt zwar die drehung,aber die Sensoren funktionieren nicht richtig und häng dann in dieser Schleife fest.Hab mit "break" und "continue"alles ausprobiert.Ohne erfolg!Bin zwar auf richtigen Weg,tritt aber irgendwie nur auf der Stelle.
Könntet Ihr mir helfen?
Meine Idee dazu:(1 von 7)
static char sec 0;
if(++sec)
{
sec=0;
}
intcounter=0;
if(copro_update())
{
for(uint8_t sensor=0;sensor<5;sensor++)
{
distances_qualitative[sensor]=(uint8_t)
(copro_distance[sensor]/256);
if((distances_quantitative[2]==2)&&(sec<=10))
{
copro_stop();
}
else if((distances_quantitative[2]==2)&&(sec>=10))
{
switch(++counter)
{
case 200:
copro_setTargetRel(-0x30,0x30,30);
break;
case290:
copro_stop();
counter=0;
break;
}
}
}
}
PS.Wie der obige Auszug(quellentext) funktioniert die drehung nicht.Könnte aber an der Zeit liegen!
Hat jemand Idee, wie ich die Zeit oder Counter oder Zählung so einbinden kann?
Mit "Sleep" und "delay" hatte ich ebenfalls schon ausprobiert(Ohne Erfolg:( )