Hallo
Ich habe mir letztens den Asuro Roboter gekauft und zusammengebaut. Beim Programmieren kriege ich eigentlich alles hin, bis auf das mit den Tastern. Bitte helft mir!!
Gruß Giftzwerg
Druckbare Version
Hallo
Ich habe mir letztens den Asuro Roboter gekauft und zusammengebaut. Beim Programmieren kriege ich eigentlich alles hin, bis auf das mit den Tastern. Bitte helft mir!!
Gruß Giftzwerg
Hallo
Wie genau soll denn die Hilfe aussehen?
Bitte formuliere die Frage etwas genauer damit man dir helfen kann ;)
Gruß Thund3r
Ich würde es gern mal hin kriegen das wenn er irgendwo gegen fährt, dreht und dann wieder weiter grade aus fährt. Das würde mir schon reichen.
Hallo
Hier ein Kollisionsprogramm ist eig. selbsterklärend:
Ein Taster wurde bewusst "igoriert" da hin und wieder mal 1 zurückgegeben auch wenn der zugehörige Taster nicht gedrückt wurde.Code:#include <asuro.h>
int main (void)
{
Init();
int p;
while(1){
MotorDir(FWD,FWD);
MotorSpeed(125,125); // Fahre geradeaus
if(PollSwitch()>=8 ) //Wenn eine Seite der Taster berügrung meldet
{
MotorDir(RWD,RWD);
MotorSpeed(125,125); //Fahre ein Stück zurück
for(p=0;p<300;p++)
{Sleep(72);}
MotorDir(BREAK,RWD); //Und dreh dann von der getasteten Seite weg
MotorSpeed(0,125);
for(p=0;p<1000;p++)
{Sleep(72);}
}
if((PollSwitch()<8 && PollSwitch()>1)) // Gleiches wie oben nur für die andere Seite
{
MotorDir(RWD,RWD);
MotorSpeed(125,125);
for(p=0;p<300;p++)
{Sleep(72);}
MotorDir(RWD,BREAK);
MotorSpeed(125,0);
for(p=0;p<1000;p++)
{Sleep(72);}
}
}
while(1){}
return 0;
}
Gruß Thund3r
danke das ist das was gern haben wollte
du kannst auch die taster mehrfach abfragen, dann musst du den einen taster nicht ignorieren.
gruß josua
ich hab noch eine Frage
was ist an diesem Text falsch
Code:#include "asuro.h"
int main(void);
{
unsigned char taste;
Init();
taste = pollswitch();
StatusLED(OFF);
MotorDir(FWD,FWD);
MotorSpeed(100,100);
while(1);
if(taste>0){MotorSpeed(0,0);}
StatusLED(RED);
MotorDir(RWD,FWD);
MotorSpeed(100,70);
else(taste=0){MotorSpeed(100,100);}
return 0;
}
Hallo
Auf den ersten Blick 2 Sachen.
Zum ersten muss die Hauptwhile Schleife nciht so while(1); aussehen sondern while(1){ hie dein quellcode bis return0} return 0; muss außerhalb der klamemr stehen und 2tens ist das else (taste==0) nicht =0
Gruß Thund3r
geht leider troßdem nicht
gruß giftzwerg
Hallo
Zeig mal wie dein Programm jetz aussieht
Gruß Thund3r
[/code]#include "asuro.h"
int main(void)
{
unsigned char taste;
Init();
taste=PollSwitch;
StatusLED(OFF);
MotorDir(FWD,FWD);
while(1){
if(taste>0){
MotorSpeed(0,0);
StatusLED(OFF);}
else{
MotorSpeed(200,200);
}
}
return 0;
}
Hallo
taste=PollSwitch; musst du in die while schleife packn sonst wird nur einmal der Wert genommen und mit dem wird immer verglichen da kein neuer ermittelet wird.
Gruß Thund3r
also so:
du musst am anfang und am ende auf "code" klickenCode:#include "asuro.h"
int main(void)
{
unsigned char taste;
Init();
taste=PollSwitch;
StatusLED(OFF);
MotorDir(FWD,FWD);
while(1){
if(taste>0){
MotorSpeed(0,0);
StatusLED(OFF);}
else{
MotorSpeed(200,200);
}
}
return 0;
}
Jetzt sieht es so aus, aber es geht leider immer noch nicht
gruß giftzwerg
Code:#include "asuro.h"
int main(void)
{
unsigned char taste;
Init();
StatusLED(OFF);
MotorDir(FWD,FWD);
while(1){
taste=PollSwitch;
if(taste>0){
MotorSpeed(0,0);
StatusLED(OFF);}
else{
MotorSpeed(200,200);
}
}
return 0;
}
Hallo
Init() muss immer als allererstes und hinter pollswitch muss n ()
Gruß Thund3r
danke jetzt gehts O:) O:)
gruß giftzwerg
Was genau geht nicht. Oder besser, was macht er schon? Deine anderungen mussen doch irgendeiner auswirkung haben. Oder hattest du compilier/make fehler meldungen bekommen. Bitte etwes weiter erklären.Zitat:
Zitat von giftzwerg95
Hallo
Gern geschehn ;)
Gruß Thund3r
Nah ,3 berichten innerhald einer minute. Das ist schnell!
kann mir vielleicht jemand ebend den hex-file davon schicken, hab nähmlich probleme mit dem notepad (windo(o)ws 7 :( )
MfG