ok danke mach ich
Werbung
also was schon mal nicht geht ist while(1);{...
an dieser stelle wird er hängen bleiben. while(1); ist eine endlosschleife. besser gehts so:
while(1){
Hier rein kommen die Anweisungen die immer wieder wiederholt werden sollen
}
sälbstverständlich werden diese anweisungen dann bis ewig wiederholt. es hilft also auch nix, eine zweite while(1) schleife unten drunter zu schreiben. du musst alle anweisungen da rein packen.
fang mal an mit einem programm, das nur auf die taster reagiert und meinetwegen die leds anschaltet. dann nimmst du als zweite schwoerigkeitsstufe die motoren dazu... und immer so weiter. das ist der beste (und eigentlich auch einzige) weg das zu lernen: schritt für schritt.
meld dich wenn du noch fragen hast!
ok danke mach ich
Was hällst du erstmal davon?
[/code]Code:#include "asuro.h" int main(void) { unsigned char ktaster; init(); StatusLED(GREEN) MotorDIR(FWD;FWD); MotorSpeed(200,200); while(1){ ktaster=Pollswitch(); Pollswitch(); if (ktaster>0) {StatusLED(RED);} else {StatusLED(GREEN);} } return 0; }
sollte ich die "Pollswitch();" Abfrage vllt noch öfters machen?
(1) Init() statt init()
(2) MotorDir() statt MotorDIR()
es wäre einfacher, wenn du in der if abfrage einfach die varible switched nimmst
die wird von nem interrupt gesetzt.
ahem nur ein kleiner hinweis.
es muss heise
if(switched==1) {
}
alternativ kann man auch einfach
if(switched) {
}
schreiben
Ähm ich weiß nicht ob ich das jezt richtig verstanden habe aber ich hoffe dass das so richtig ist.
Code:#include "asuro.h" int main(void) { unsigned char ktaster; Init(); StatusLED(GREEN) MotorDir(FWD;FWD); MotorSpeed(200,200); while(1){ ktaster=Pollswitch(); Pollswitch(); if(switched==1){ {StatusLED(RED);} else {StatusLED(GREEN);} switched=o } return 0; }
Lesezeichen