So, ich hab mich heut endlich mal ran gemacht das mit dem Programmieren etwas zu blicken.
Geradeaus fährt er schonmal, an der Wand setzt er auch minimal zurück, aber eben nur minimal.
Die Taster Funktionieren einwandfrei. Solange man sie gedrückt hält fährt er rückwärts und sofort beim loslassen wieder vorwärts.
Jetzt wollt ich die Schleife
for(i=0;i<1000;i++){
Sleep (72);
}
ins Programm bringen und auf einmal fährt er nur noch rückwerts im Kreis.
Linkes Rad flüssig, rechtes Rad stotternd, sobald ich den Taster drück macht er dann das was er soll. (zurücksetzen für ne Zeit)
Aber warum fährt er dauernd rückwärts ??
Weiß jemand Rat, oder wie ich die Zeit des Rückwärtsfahrens mit MSleep und ohne schleife hinbekomme?
Hab schon versucht etwas in die asuro.h zu schreiben, is aber wohl nicht so einfach mit reinschreiben .
Code:
#include "asuro.h"
int main(void)
{
unsigned char t1, t2;
int i;
Init();
while(1)
{
t1 = PollSwitch();
t2 = PollSwitch();
if (t1 == 0 && t2 == 0)
{
MotorDir(FWD,FWD);
MotorSpeed(175,180);
BackLED(OFF,OFF);
FrontLED(ON);
}
else if( t1 && t2 && t1 == t2)
{
MotorSpeed(0,0);
StatusLED(RED);
if( t1 & 0x07 ) //Tasten links gedrückt??
{
FrontLED(OFF);
BackLED(ON,OFF);
MotorDir(RWD,RWD);
MotorSpeed(100,0); // linkes rad rückwärts
}
if( t1 & 0x38) //Tasten rechts gedrückt ??
{
FrontLED(OFF);
BackLED(OFF,ON);
MotorDir(RWD,RWD);
MotorSpeed(0,100); //rechtes Rad Rückwärts
}
***********hier hatte ich mal die Schleife drin ********************
}
return 0;
}
Lesezeichen