ganz einfach... die motoren laufen in verschiedene richtungen...Zitat von EDH
XD
sieht nicht schlecht aus, habe nur die überflüssigen klammern in der if-abfrage weggemacht.
es heisst
if(bedingung){aktion}else{aktion}
und nicht
if(bedingung){{aktion}else{aktion}}
es gibt nur ein problem: die funktion sleep(255) wartet etwa 3 milliseknunden, aber der asuro wird länger brauchen um sich um 180 grad zu drehen.
probiers mal damit:
zuerst definierst du noch einen int i am anfang des programms.
dann machst du folgendes an der stelle, wo er sich drehen soll:
for(i=0;i<333;i++){
sleep(255);
}
dann wartet er 333*3ms=ca eine sekunde, bevor er anhält. ob er es in dieser zeit schafft, weiss ich nicht, aber du musst dann mit dem wert für i (der 333) experimentieren biss es hinhaut.
hier der neue code:
Code:#include "asuro.h" int main(void) { unsigned char ktaster; Init(); StatusLED(GREEN) MotorDir(FWD;FWD); MotorSpeed(200,200); while(1){ if(switched==1){ StatusLED(RED); MotorDir(FWD,RWD); MotorSpeed(100,100); Sleep(255); MotorDir(BREAK,BREAK);} else{ StatusLED(GREEN);} switched=0 } return 0; }
ganz einfach... die motoren laufen in verschiedene richtungen...Zitat von EDH
XD
das hab ich wohl übersehen
Danke für den Tipp
kein problem, meld dich wenns läuft!
Ich hab nochmal eine allgemeine Verständnis frage zu den Bibliotheken.
und zwar, wenn man die standart lib vom Asuro erweitern will brauch ma ndoch einfach nur die neu definierten funktionen aus der neuen lib kopieren und in die Standart lib einfügen oder?
Oder als Alternative kann man beide Bibliotheken auf den Asuro flashen und muss dann nur im Programm die neue Bibliothek neben der Standart lib mit #include... verknüpfen oder ?
Wenn das so einigermaßen stimmt hab ichs begriffen^^.
Hi sloti,
deine Hex-Datei beinhaltet immer die Bibliothek die mit #include <libname.h> in deiner test.c Datei steht. Die Bibliothek wird nicht einzeln auf den Asuro geflasht!
Willst du die Bibliothek auswechseln überschreibst du einfach die Alte.
So einfach is das...
O.
genau, du flashst ja nur dein eigenes programm. das, was bei #include steht, wird mit kompiliert und mit geflasht, d.h. wenn du die neue bibliothek einfach über die alte drüber kopierst (die original-bib ist ja noch auf der cd), und dann neu kompilierst, dann wird dein programm mit der neuen bib laufen.
einfach die funktionen rüber zu kopieren, wird evtl nihct gehen, weil einige der neuen funktionen auf einem 36kHz-counter basieren, während bei der alten bib ein 72kHz-counter verwendet wurde. Beispielsweise die Textübertragung per infrarot würde nicht mehr hinhaun.
also einfach die neue bib runterladen (ich empfehle version 2.6, in version 3.0 wurden einige funktionen recht nutzlos umbenannt, was das programmieren nur erschwert. ansonsten wurden nur kleinere aufräumarbeiten durchgeführt) und über die alte asuro.c und asuro.h drüber kopieren. dann kannst du so wie immer programmieren, du musst nichts weiter beachten.
Ja das is ja einfach. Ich bin ja schon drin^^
Die neusete Version meines Programmes:
Code:#include "asuro.h" int main(void) { unsigned char ktaster; int i Init(); StatusLED(GREEN) MotorDir(FWD;FWD); MotorSpeed(200,200); while(1){ if(switched==1){ StatusLED(RED); MotorDir(FWD,RWD); MotorSpeed(100,100); for (i=0,i<333,i++); {Sleep(255);} MotorDir(BREAK,BREAK);} else {StatusLED(GREEN);} } return 0; }
Lesezeichen