kann mir bitte einer ein programm schreiben
wo sich der asuro 30cm vorwärts dreht und die leds
nacheinander leuchten und wieder rückwärts fährt
ist sehr wichtig bitte bin eine niete in programmieren
kann mir bitte einer ein programm schreiben
wo sich der asuro 30cm vorwärts dreht und die leds
nacheinander leuchten und wieder rückwärts fährt
ist sehr wichtig bitte bin eine niete in programmieren
also. du solltest ers einmal erklären was du genau meinst.
1. Wie kann sich der Asuro nach vorwärts ****drehen****?
2. Welche LED's sollen nacheinander leuchten, und wielange?
3. Das mit den 30cm musst du von der Zeit her dann selbst rauskriegen, da jeder asuro anders geölt ist und so was.
hallo also ich hab mich hingehockt und dieses programmchen
mit hilfe von dem selbsttest programm geschrieben
#include "asuro.h"
int main(void)
{
Init();
MotorDir(FWD,FWD);
MotorSpeed(255,0);
while(1)
return 0;
}
{
unsignet int i;
Init();
while(1)
StatusLED(RED);
for (i = 0; i < 282; i++) {
Sleep(10); }
StatusLED(GREEN);
for (i = 0; i < 282; i++) {
Sleep(10); }
StatusLED(OFF);
}
{
Init();
MotorDir(RWD,RWD);
MotorSpeed(0,255);
while(1)
return 0;
}
FrontLED(ON);
for (i = 0; i < 282; i++) {
Sleep(10); }
FrontLED(OFF);
BackLED(ON,OFF);
for (i = 0; i < 282; i++) {
Sleep(10); }
BackLED(ON,OFF);
for (i = 0; i < 282; i++) {
Sleep(10); }
BackLED(OFF,OFF);
StatusLED(GREEN);
for (i = 0; i < 282; i++) {
Sleep(10); }
}
return 0;
}
also das programm soll mit maximaler drehzahl das linker Motor vorwärts fahren und danach das rechter motor aber und in dem quellcode geschriebene leds sollen leuchten
und wenn es klappen sollte könntet ihr mir des compalieren bei mir geht
es irgendwie nicht brauch bitte dan die hex datei
so, das sieht schon nicht schlecht aus. mal ein paar kleinigkeiten:
1. Ein thread, der WICHTIG! BITTE HELFEN heisst, wird garantiert in keiner Suche gefunden. bitte editiere deinen ersten beitrag, dann kannst du den titel ändern.
2. Ein Forum ist zum Helfen. NICHT UM FERTIGE PROGRAMME SCHREIBEN ZU LASSEN. Gut, dass du es selbst wenigstens Probiert hast.
3. Es heisst "kompilieren" und nicht kompalieren =)
4. Wenn du vor dem Programmcode den button "code" über dem textfenster drückst, und danach auch nochmal, dann sieht das ganze so aus: Hier dein Programm mit ein paar anmerkungen.
AAAlso:Code:#include "asuro.h" //OK int main(void) //OK { //OK Init(); //OK MotorDir(FWD,FWD); //OK MotorSpeed(255,0); //OK while(1) //Hier fehlt was. was soll passieren? entweder {anweisungen}; oder nur ein Semikolon (;) muss hier hinter return 0; //OK } //diese klammer zeigt das ende des programms an. schau immer, welche geöffnete klammer zu welcher geschlossenen gehört. diese gehört zur klammer hinter "int main(void)", und schliesst damit das programm. { //hier ist eine geöffnete klammer... einfach so. das geht zwar theoretisch, aber in diesem fall ist es witzlos: das programm ist ja schon beendet =( unsignet int i; //es heisst "unsigned" Init(); //haste schon am beginn des programms while(1) //dies ist eine endlosschleife. ab hier passiet nix mehr. StatusLED(RED); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK StatusLED(GREEN); for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK StatusLED(OFF); //OK } //Wieder ein ende... naja { //und wieder ein öffnen =) Init(); //haste schon MotorDir(RWD,RWD); //OK MotorSpeed(0,255); //OK while(1) //Endlosschleife return 0; //muss am ENDE des programmes stehen... } //einfach so ne ende klammer... wozu gehört die? FrontLED(ON); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK FrontLED(OFF); //OK BackLED(ON,OFF); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK BackLED(ON,OFF); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK BackLED(OFF,OFF); //OK StatusLED(GREEN); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK } // noch ne ende klammer... keine geöffnete zu sehen return 0; //OK //hier fehlt eine endlosschleife } //OK
bitte fang nochmal an. zusammenkopierte quelltexte funktionieren zu 99,9% nicht.
lies die anleitung genau. versuche dei beispiele zu verstehen. gerade am beginn des teils der programmierung in der anleitungen stehen wichtige grundlagen, welche hier mehr oder weniger vorausgesetzt werden.
Wenn der compiler fehlermeldungen ausgibt, kopiere sie und poste sie hier. Ebenfalls mit dem "code" button natürlich.
mach langsam, versuche, nichts fertiges zu kopieren. niemand wird dir einfach so ein programm schreiben. dadurch lernste nix, das hört man hier dauernd.
Versuche, die Programme der anleitung abzutippen (!) und sie dabei zu verstehen. sie sind ganz gut erklärt. und lies vor allen dingen den entsprechenden teil der anleitung genau, dir fehlen die grundlagen!!
Nicht aufgeben, ist alles garantiert nicht böse gemeint, aber das alles ist gar nicht so schwer, wenn man sich damit beschäftigt und nicht fertiges verlangt. ausserdem kann man dann viel stolzer darauf sein! Viel Erfolg weiterhin...
hier mein verbessertes programm hoffe es gehtCode:#include "asuro.h" //OK int main(void) //OK { //OK Init(); //OK MotorDir(FWD,FWD); //OK MotorSpeed(255,0); //OK while(1); return 0; //OK unsigned int i; StatusLED(RED); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK StatusLED(GREEN); for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK StatusLED(OFF); //OK } //Wieder ein ende... naja { MotorDir(RWD,RWD); //OK MotorSpeed(0,255); //OK FrontLED(ON); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK FrontLED(OFF); //OK BackLED(ON,OFF); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK BackLED(ON,OFF); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK BackLED(OFF,OFF); //OK StatusLED(GREEN); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK return 0; //OK while(1) } //OK
sieht schon besser aus. kompiliere es mal, dann kannst du durch die fehlermeldungen etwas ändern.
Fehler:
- Am anfang des programms ist noch eine endlos schleife. mach die raus.
Die beiden klammern in der mitte können weg. wozu sollen sie gut sein?
- return(0) muss nur ein einziges mal, und zwar NACH der (einzigen) endlosschleife am ende stehen. hinter diese kommt ein semikolon. return(0) wird also nie ausgeführt, sondern muss nur der form wegen dastehen.
- sortiere nochmal die klammern {}: eine zu beginn der main funktion, eine als ende des quelltextes. ansonsten nur für die for() funktion und schleifen verwenden. klammern allein im quelltext haben wenig sinn.
- unsigned int i; diese zeile muss am anfang stehen, direkt vor Init();
ansonsten: viel besser =)
ändere das alles passend, und dann versuche, es zu kompilieren. was gibt der compiler aus?
die kommentare könenn drin stehen bleiben, durch die beiden schrägstriche // sind sie als kommentar gekennzeichnet und werden vom compiler ignoriert.
und wie ist es jetztCode:{ //OK Init(); //OK MotorDir(FWD,FWD); //OK MotorSpeed(255,0); //OK unsigned int i; StatusLED(RED); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK StatusLED(GREEN); for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK StatusLED(OFF); //OK MotorDir(RWD,RWD); //OK MotorSpeed(0,255); //OK FrontLED(ON); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK FrontLED(OFF); //OK BackLED(ON,OFF); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK BackLED(ON,OFF); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK BackLED(OFF,OFF); //OK StatusLED(GREEN); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK //OK while(1); return 0; } //OK
bitte kompiliere dein programm selbst. dann siehst du schon die meisten fehler, weil der compiler zeilennummern zu den fehlern angibt.
jetzt fehlt der kopf (das #include), es fehlt der beginn der main funktion, und das unsigned int i steht noch immer an der falschen stelle.
ich habs compalier und des kam rausCode:#include "asuro.h" //OK int main(void) //OK { //OK Init(); //OK MotorDir(FWD,FWD); //OK MotorSpeed(255,0); //OK unsigned int i; StatusLED(RED); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK StatusLED(GREEN); for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK StatusLED(OFF); //OK MotorDir(RWD,RWD); //OK MotorSpeed(0,255); //OK FrontLED(ON); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK FrontLED(OFF); //OK BackLED(ON,OFF); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK BackLED(ON,OFF); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK BackLED(OFF,OFF); //OK StatusLED(GREEN); //OK for (i = 0; i < 282; i++) { //OK Sleep(10); } //OK //OK while(1); return 0; } //OK
es hat keine hex datei erstelltCode:C:\ASURO_src\FirstTry>make all -------- begin -------- avr-gcc --version avr-gcc (GCC) 3.3.1 Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Size before: test.elf : section size addr .text 1512 0 .data 0 8388704 .bss 1 8388704 .noinit 0 8388705 .eeprom 0 8454144 .stab 3120 0 .stabstr 1698 0 Total 6331 Size after: test.elf : section size addr .text 1512 0 .data 0 8388704 .bss 1 8388704 .noinit 0 8388705 .eeprom 0 8454144 .stab 3120 0 .stabstr 1698 0 Total 6331 Errors: none -------- end -------- > Process Exit Code: 0
Lesezeichen