was mir so auf die schnelle einfällt
(1) nimm bitte den code button wenn du code postest
(2) du hast zweimal die main funktion
was soll dein programm eigentlich genau machen?
Erst mal hallo an alle, da ich hier neu bin und schonmal danke im voraus,
Ich wollte wissen, ob der folgende code richtig ist, da ich grade mit c angefangen habe und das mein erstes programm ist.
#include "asuro.h"
int main(void)
{ char befehl[8];
unsigned char ktaster;
Init();
SerRead(befehl,8,0);
MotorDIR(FWD,FWD);
MotorSpeed(255,255);
while(1);{
ktaster=PollSwitch();
if (ktaster>7)
{MotorSpeed(180,60);}
else
{MotorSpeed(60,180);}
}
return 0;}
int main(void)
{ unsigned int odata[2];
init();
OdometrieData(odata);
if (odata<1023)
{SerWrite("Wir fahren",9);}
else
{SerWrite("Wir fahren nicht",14);}
while(1);
return 0;}
was mir so auf die schnelle einfällt
(1) nimm bitte den code button wenn du code postest
(2) du hast zweimal die main funktion
was soll dein programm eigentlich genau machen?
zu 1) werd ich mir merken und zu 2) werde ich ändern und er soll auf befehl "fahr los" los fahren dann wenn er irgendwo gegesstößt die richtung ändern und danach die odo leds checken und wenn die merken das er fährt "wir fahren" senden und wenn nciht dann "wir fahren nicht" senden.
das wird ztu 100% nicht funktionieren.Code:OdometrieData(odata); if (odata<1023) {SerWrite("Wir fahren",9);} else {SerWrite("Wir fahren nicht",14);}
er wird dir immer ausgeben, dass er fährt.
mt der funktion OdometrieData() wird NICHT DIE DREHZAHL GEMESSEN.
die drehzahl musst du dir erst selbst ausrechnen. gibts hier n paar threads dazu.
mfg EDH
Danke für die Info
eventuell wäre da jetzt sogar ein einsatzweck für diese multitasking.
in einem thread wird der motor gesteuert
im anderen thread "wir fahren" bzw "wir fahren nicht" ausgegeben
oha wir wollen mal lieber nichts überstürzen^^
Sieht das besser aus? Ich hab den code jezt nochmal überarbeitet
Code:#include "asuro.h" int main(void) { char befehl[8]; unsigned char ktaster; Init(); SerRead(befehl,8,0); MotorDIR(FWD,FWD); MotorSpeed(255,255); while(1);{ ktaster=PollSwitch(); if (ktaster>7) {MotorSpeed(180,60);} else {MotorSpeed(60,180);} } return 0; void abfrage(void) { unsigned int odata[2]; init(); OdometrieData(odata); if (odata<1023) {SerWrite("Wir fahren",9);} else {SerWrite("Wir fahren nicht",14);} while(1); return 0;} }
mhh...
also genaugenommen sieht der code immer noch ziemlich scheps aus
aber ich glaube nicht das es jetzt was bringt, wenn ich erklär was falsch ist, oder den berichtigten code poste.
hast du die asruo anleitung GENAUESTENS studiert?
da steht ja nicht wirlich viel über c drinn. aber das was man am anfang für den asuro braucht ist vorhanden.
vieleicht solltest du lieber erst selber programme schrieben, wenn du alle beispiele auswendig kannst.
Naja ich hab die anleitung durchgelesen ich kann sie nich auswendig aber ich meine dass ich sie verstanden habe. ABer es kann auch sien dass ich nur denek das ich sie verstanden habe, aie allerdings gar nicht wirklich verstanden habe^^ Aber ich fänd es nett wenn du mir vllt den richtigen code posten würdest (wenn es keine Umstände macht), dann kann ich besser sehen was ich falsch mache.
Lesezeichen