Hallo
Willkommen im RN-Forum und Glückwunsch zum asuro.
Wenn in deinem Programm die erste While-Schleife "while(PollSwitch()==0)" verlassen wird, läuft das restliche Programm in einem Rutsch durch bis zum finalen while(1);
Break() ist keine Verzögerung, hier sollte Sleep() stehen. In der For-Schleife ist die Abbruchbedingung falsch: for (i=0;i>255;i++){Break(255);}
Deshalb wird die Schleife nie betreten, also auch Break() nicht ausgeführt. (Möglicherweise wird die Schleife doch einmalig ausgeführt, weil die Abbruchbedingung erst am Schleifenende geprüft wird. Das würde aber keinen Unterschied machen, weil nach Break() die Schleife trotzdem sofort beendet und verlassen wird.)
Nach
MotorDir(RWD,RWD);
MotorSpeed(120,120);
springt das Programm deshalb direkt nach
while(1);
Grundsätzlich fehlt im Programm aber auch die Endlosschleife:
PHP-Code:
#include "asuro.h"
int main(void)
{
unsigned int i;
Init();
while(1)
{
StatusLED(GREEN);
MotorDir(FWD,FWD);
MotorSpeed(120,120);
while(PollSwitch()==0);
StatusLED(RED);
MotorDir(RWD,RWD);
MotorSpeed(120,120);
//while(PollSwitch()!=0);
for (i=0;i<1000;i++)
{
Sleep(72); // 72 bei orginaler CD-Library, bei neuen Libs 36
}
}
return 0;
}
(Ungetestet)
Gruß
mic
Lesezeichen