Hi.
Hab im Forum bisher nicht dazu gefunden.
Was ist an meinem Prog falsch.
#include "asuro.h"
int main(void)
{
int p;
Init();
p=150;
MotorDir(FWD,FWD);
MotorSpeed(p,p);
if (PollSwitch()>8);
{p=(p+20);}
while(1);
return 0;
}
Gruß Frank
Druckbare Version
Hi.
Hab im Forum bisher nicht dazu gefunden.
Was ist an meinem Prog falsch.
#include "asuro.h"
int main(void)
{
int p;
Init();
p=150;
MotorDir(FWD,FWD);
MotorSpeed(p,p);
if (PollSwitch()>8);
{p=(p+20);}
while(1);
return 0;
}
Gruß Frank
hallo frank
bei dir wird das ganze genau einmal von oben nach unten durchlaufen und dann bleibt das programm bei der endlosschleife "hängen". um die geschwindigkeit zu erhöhen musst du das ganze wiederholen:
ich hoffe es funktioniert, da ich es nicht getestet habeCode:#include "asuro.h"
int main(void)
{
int p;
int i;
Init();
p=150; //Startwert
MotorDir(FWD,FWD); //Richtung festlegen
while(1) //wiederhole folgendes
{
MotorSpeed(p,p);
if (PollSwitch()>8);
{
p=(p+20);
for(i=1;i<500;i++) //eine halbe Sekunde warten, damit es nicht zu schnell geht
{Sleep(72);}
}
}
while(1);
return 0;
}
könntest du bitte dein programm zwischen die code-tags schreiben, das würde es übersichtlicher machen:
[code ] dein programm [/code ] (ohne leerzeichen nach code!)
Hi Danke für die Antwort. Nehme mir das mit den Tabs zu Herzen.
das Prog von dir läuft aber nicht. Wird vo selber schneller, ohne Taster.
Gruß Frank
if (PollSwitch()>8); // das Semikolon ist hier falsch!
Vermutlich werden nun die laufenden Motoren die PollSwitch()-Abfrage stören:
GrußCode:#include "asuro.h"
int main(void)
{
int p;
int i;
char t1,t2;
Init();
p=150; //Startwert
MotorDir(FWD,FWD); //Richtung festlegen
MotorSpeed(p,p);
t2=PollSwitch();
while(1) //wiederhole folgendes
{
t1=PollSwitch();
if ((t1>7) && (t1==t2)) // Wenn Tastenwert größer 7 und beide Lesungen gleich sind
{
StatusLED(RED);
if(p<235) p=p+20;
MotorSpeed(p,p);
for(i=1;i<500;i++) //eine halbe Sekunde warten, damit es nicht zu schnell geht
Sleep(72);
StatusLED(GREEN);
}
t2=t1;
}
return 0;
}
mic
Klasse jetzt klappt´s.
Danke