Archiv verlassen und diese Seite im Standarddesign anzeigen : Asuro führt programme nicht aus
tortelini66
27.07.2010, 16:32
hey Leute,
ich habe mir jetzt auch einen asuro gekauft,
und zusammengelötet.
Den selbsttest hat er mit bravour bestanden, also es funktioniert alles einwandfrei!
Wenn ich jetzt ein neues programm flashe, und nach dem flashen, aus und wieder einschalte, bootet er (back led´s glimmen und status led ist orange)
und danach wird die status led grün, danch passiert nichts mehr!!!
Das passiert bei jedem programm!!!!!!!
Was kann ich tun?????? :-k
Poste doch bitte mal eine Programm.
tortelini66
27.07.2010, 17:09
z.b.
#include “asuro.h”
int main(void) {
Init();
StatusLED(RED);
while(1);
return 0;
}
tortelini66
27.07.2010, 17:10
zusätzlich kommt bei obigem programm jetzt noch folgender fehler wenn ich den compiler starte:
C:\ASURO_src\FirstTry>make all
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > test.d; \
[ -s test.d ] || rm -f test.d
test.c:1:10: #include expects "FILENAME" or <FILENAME>
-------- 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
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c -o test.o
test.c:1:10: #include expects "FILENAME" or <FILENAME>
test.c: In function `main':
test.c:3: warning: implicit declaration of function `Init'
test.c:4: warning: implicit declaration of function `StatusLED'
test.c:4: error: `RED' undeclared (first use in this function)
test.c:4: error: (Each undeclared identifier is reported only once
test.c:4: error: for each function it appears in.)
make: *** [test.o] Error 1
> Process Exit Code: 2
Hm... dafür hab ich leider keine Lösung. Bin noch nicht solange dabei, musst du wohl leider (wie ich in meinem Thread :-D) warten
tortelini66
27.07.2010, 17:28
was mir aufgefallen ist: das rätselprogramm von stochri, funzt bei mir einwand frei!!
schade das ich den c code davon nicht habe, sonst könnt ich es ja mal vergleichen!
Fehler gefunden :D mach die " mal mit "Umschalt + 2"
tortelini66
27.07.2010, 17:45
ich dussel wie dumm man sein kann :D
aber danke für die schnelle hilfe :D
tortelini66
27.07.2010, 18:03
und wo ist hier der fehler???
#include "asuro.h"
int main(void) {
Init ()
int zaehler; // Variable für’s Zählen deklarieren
for (zaehler=0; zaehler<10; zaehler++) { // zehnmal wiederholen:
SerWrite(“Los geht’s!\n”,12); // “Los geht’s” schicken
}
MotorDir(FWD,FWD); // Beide Motoren auf vorwärts
MotorSpeed(120,120); // Beide Motoren etwa halbe Kraft voraus
while (1) { // Danach nichts mehr machen!
} }
beim compilieren kommt folgendes:
C:\ASURO_src\FirstTry>make all
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > test.d; \
[ -s test.d ] || rm -f test.d
-------- 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 1516 0
.data 0 8388704
.bss 1 8388704
.noinit 0 8388705
.eeprom 0 8454144
.stab 3132 0
.stabstr 1698 0
Total 6347
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c -o test.o
test.c: In function `main':
test.c:4: error: parse error before "int"
test.c:5: error: `zaehler' undeclared (first use in this function)
test.c:5: error: (Each undeclared identifier is reported only once
test.c:5: error: for each function it appears in.)
test.c:6: error: stray '\223' in program
test.c:6: error: `Los' undeclared (first use in this function)
test.c:6: error: parse error before "geht"
test.c:6: error: stray '\222' in program
test.c:6: error: stray '\' in program
test.c:6: error: stray '\224' in program
test.c:11:4: warning: no newline at end of file
make: *** [test.o] Error 1
> Process Exit Code: 2
#include "asuro.h"
int main(void) {
Init ();
int zaehler; // Variable für’s Zählen deklarieren
for (zaehler=0; zaehler<10; zaehler++) { // zehnmal wiederholen:
SerWrite("Los geht’s!\n",12); // “Los geht’s” schicken
}
MotorDir(FWD,FWD); // Beide Motoren auf vorwärts
MotorSpeed(120,120); // Beide Motoren etwa halbe Kraft voraus
while (1) { // Danach nichts mehr machen!
}
return(0);
}
und das return(0);
Inti();
und wieder " mit Umschalt + 2...
tortelini66
27.07.2010, 18:16
is deins jetzt so wie es sein soll, weil so ganz check ich den post grade nich!!!
hehe *schäm*
Is ahlt noch neuland für mich
Vergleich den von dir geposteten Code mit meinem, dann wirste den unterschied sehen. Wäre für dich vllt auch hilfreich im internet nach ein paar Tutorials zu suchen. Damit du dir erstmal ein paar Grundlagen von C aneigenen kannst.
tortelini66
27.07.2010, 18:37
ahh danke.
so langsam machts klick
tortelini66
27.07.2010, 19:15
also jetzt hab ichs verstanden!!! *freu*
dieses programm hier:
#include "asuro.h"
int main(void) {
Init ();
MotorDir(FWD,FWD); // Beide Motoren auf vorwärts
MotorSpeed(120,120); // Beide Motoren etwa halbe Kraft voraus
StatusLED(GREEN); // Status-Leuchtdiode auf grün schalten
while (PollSwitch()==0) { // Solange keine Kollision erfolgte...
SerWrite("Alles OK!\n",10); // ... Euphorie verbreiten
}
MotorSpeed(0,0); // Kollision! Sofort anhalten!
StatusLED(RED); // Statusleuchtdiode rot schalten
while (1) {
SerWrite("Aua!\n",5); // und weinen!
}
}
funktioniert auch gut und ich hab auch verstanden wieso!!!
mein problem manchmal hält der auch ohne kollision an, und manchmal fährt er gar nicht erst los!!
das verstehe ich nun wirklich nicht!
Was kann ich tun????
Durchsuch doch mal das Forum ein wenig ^^ Dann lernst du auch gleich mit der SuFu umzugehen :D
tortelini66
27.07.2010, 19:50
ok hehe :D :D
problem hat sich aber gelöst, mit motorspeed 160,165 klappts jetzt sehr gut
Vergleich den von dir geposteten Code mit meinem, dann wirste den unterschied sehen. Wäre für dich vllt auch hilfreich im internet nach ein paar Tutorials zu suchen. Damit du dir erstmal ein paar Grundlagen von C aneigenen kannst.;) http://www.rn-wissen.de/index.php/C-Tutorial
http://www.acm.uiuc.edu/webmonkeys/book/c_guide/index.html
mein problem manchmal hält der auch ohne kollision an, und manchmal fährt er gar nicht erst los!!
das verstehe ich nun wirklich nicht!Den motoren machen elektrische störungen auf den analoge spannungmessung leitungen. Dadurch denkt der Asuro das den (2) Taster ganz rechts angestossen werden. Lössung ist mehrfach messen und vergleichen ob es eine stabiele zustand ist. Störung ist das meistens nicht, anstossen meistens schon. Wie gesagt, das ist schon oft beschrieben im forum.
hallo,
ICH habe vor einpaar Tage Auch Ein Asuro Bausatz Gekauft und zusammengelötet . Den " Selbsttest " Hat bei mir auch funktioniert .
ABER ALS Programm geflasht Habe ich ( mein Programm auch Das same Wie von tortelini66 ), LED Leuchtet der Status Nur grün und tut Nichts anderes .
Obwohl ich den ganzen Thema gelesen Habe , ES Habe ich Immer Noch Nicht verstanden Wie ich es Machen Söll .
Ich bin ein absoluter Anfänger , ich könnt IHR MIR Hoffe DABEI einbisschen ausführlicher erklären !
Danke im Voraus!
Martinius11
03.08.2010, 15:35
aber beim selftest hat sich die farbe noch geändert?
hast du sein Programm 1 zu 1 übernommen oder selber etwas daran verändert? Poste doch ambesten mal deinen Quellcode
[Quote = " Martinius11 "] ABER beim Selbsttest Hat Sich NOCH Die Farbe geändert ? [/ Quote]
[I] Ja! ABER ALS ich der Programm geflasht Habe, ER Nicht Leuchtet rot ? [/ I]
[Code] # include " asuro.h "
int main ( void)
{
Init () ;
StatusLED (RED)
while (1) ;
return 0;
}
[/ Code]
[I] DABEI Erscheint folgende Meldung : [/ i]
[I] > "C: \ FirstTry \ Test - all.bat "
C: \ FirstTry > make all
set- e; avr- gcc -MM- mmcu = atmega8 -I. -G- Os - funsigned -char- funsigned - Bitfelder - fpack - struct - fshort - Enumerationen -Wall- Wstrict - Prototypen - Wa, - = ahlms asuro.lst asuro.c \
| sed ' s, \ (.* \) \. o [ : ] * \ 1.o \ 1.d : , g '> asuro.d ; \
[ S - asuro.d ] | | rm- f asuro.d
set- e; avr- gcc -MM- mmcu = atmega8 -I. -G- Os - funsigned -char- funsigned - Bitfelder - fpack - struct - fshort - Enumerationen -Wall- Wstrict - Prototypen - Wa, - = ahlms TEST.LST test.c \
| sed ' s, \ (.* \) \. o [ : ] * \ 1.o \ 1.d : , g '> test.d ; \
[ S - test.d ] | | rm- f test.d
-------- -------- Beginnen
avr- gcc - version
avr- gcc ( WinAVR 20100110 ) 4.3.3
Copyright ( C) 2008 Free Software Foundation , Inc.
Dies ist freie Software, siehe sterben Quelle für Das KOPIEREN von Bedingungen . Es GIBT KEINE
Garantie, für Nicht Einmal MARKTREIFE Oder der eignung FÜR EINEN BESTIMMTEN zweck .
avr- gcc -c- mmcu = atmega8 -I. -G- Os - funsigned -char- funsigned - Bitfelder - fpack - struct - fshort - Enumerationen -Wall- Wstrict - Prototypen - Wa, - = ahlms TEST.LST test.c -o test.o
In der mitgelieferten Datei asuro.h : 34,
von test.c : 1:
c: / winavr-20100110/lib/gcc/../../avr/include/avr/signal.h : 36:2 : Warnung : # warning " This Header -Datei ist veraltet . Verwenden < avr / interrupt.h > . "
avr- gcc -c- mmcu = atmega8 -I. -G- Os - funsigned -char- funsigned - Bitfelder - fpack - struct - fshort - Enumerationen -Wall- Wstrict - Prototypen - Wa, - = ahlms asuro.lst asuro.c -o asuro.o
In der mitgelieferten Datei asuro.h : 34,
von asuro.c : 29:
c: / winavr-20100110/lib/gcc/../../avr/include/avr/signal.h : 36:2 : Warnung : # warning " This Header -Datei ist veraltet . Verwenden < avr / interrupt.h > . "
avr- gcc- mmcu = atmega8 -I. -G- Os - funsigned -char- funsigned - Bitfelder - fpack - struct - fshort - Enumerationen -Wall- Wstrict - Prototypen - Wa, - = ahlms test.o test.o asuro.o - output test.elf -Wl , - Karte = test.map , - cref -lm
AVR- objcopy -O ihex -R. eeprom test.elf test.hex
AVR- objcopy -j . EEPROM - set- ABSCHNITT - flags = =. eeprom " Alloc , load " \
- Change -section- LMA . eeprom = 0 -O ihex test.elf TEST.EEP
c: \ WinAVR - 20100110 \ bin \ avr- objcopy.exe : - change- section- LMA . eeprom = 0x00000000 nie benutzt
AVR -objdump- h -S test.elf > test.lss
Größe nach:
test.elf :
ABSCHNITT Größe addr
. Text 1692 0
. bss 1 8388704
. debug_aranges 64 0
. debug_pubnames 263 0
. debug_info 1060 0
. debug_abbrev 401 0
. debug_line 1120 0
. debug_frame 288 0
. debug_str 350 0
. debug_loc 388 0
Total 5627
Fehler: none
-------- -------- Ende
> Process Exit Code: 0
> Time Taken : 00:04
[ / i]
Martinius11
03.08.2010, 17:43
du hst das ; bei StatusLED vergessen
es wundert mich das der Compiler keinen Fehler ausspuckt :-/
dein code:
int main ( void)
{
Init () ;
StatusLED (RED)
while (1) ;
return 0;
}
so würde ichs schreiben:
int main ( void)
{
Init () ;
StatusLED (RED);
while (1) ;
return 0;
}
klein aber fein der Fehler ^^ fehlt ein ; aber das der compiler net meckert versteh ich net :-/
danke für sterbe Schnelle antwort !
ICH HABE ES geändert und geflasht,
ABER Es leuchtet Immer Noch Nicht rot
Hab dein Problem jetzt glaube gefunden, hast du "# include " asuro.h " oder "#include "asuro.h" in dem Quellcode stehen? Wenn ersteres, versuch bitte mit weniger Leerzeichen zu arbeiten... Aber dann versteh ich wieder nicht warum dein Compiler da keinen Fehler bringt...
kann mir jemand erklären wie diese HTMl funktioniert?
ich schreibe etwas und er zeigt was ganz anderes
(wie z.B oben)
HTMI?
Du klickst z.B. auf Code, dann schreibst du eben den Quellcode, bei dem Button "Code" ist jetzt ein * dahinter. Wenn du den kompletten Quellcode geschrieben hast, klickst du auf "Code*". Dann müsste es gehen.
oder versuchs mal mit kleinschreiben statts groß wie z.B. bei [Code]
danke
ich habe nochmal ohne Leerzeichen versucht
trotzdem funktioniert es nicht
kopier dir das mal:
#include "asuro.h"
int main(void){
Init();
StatusLED(RED);
while(1);
return 0;
}
Ich habe der programm geändert:
#include"asuro.h"
int main(void)
{
Init();
StatusLED(RED);
while(1);
return 0;
}
dabei erscheint folgende Fehlermeldung:
C:\ASURO_src\FirstTry>make all
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=asuro.lst asuro.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > asuro.d; \
[ -s asuro.d ] || rm -f asuro.d
C:\Users\AnhDung\AppData\Local\Temp\make564602.sh: /c/WinAVR/bin/avr-gcc: Invalid argument
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > test.d; \
[ -s test.d ] || rm -f test.d
C:\Users\AnhDung\AppData\Local\Temp\make564603.sh: /c/WinAVR/bin/avr-gcc: Invalid argument
-------- 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.
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c -o test.o
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=asuro.lst asuro.c -o asuro.o
avr-gcc -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.o test.o asuro.o --output test.elf -Wl,-Map=test.map,--cref -lm
avr-objcopy -O ihex -R .eeprom test.elf test.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O ihex test.elf test.eep
avr-objdump -h -S test.elf > test.lss
Size after:
C:\Users\AnhDung\AppData\Local\Temp\make564608.sh: /c/WinAVR/bin/avr-size: Invalid argument
make: *** [sizeafter] Error 126
> Process Exit Code: 2
ich habe dein code kopiert, aber es funktioniert immer noch nicht.
Inzwischen habe ich ein neue Programm geschrieben.
könnt ihr mal schauen, ob da irgend ein Fehler ist
Danke!
#include "asuro.h"
int main(void) {
Init();
StatusLED(RED);
MotorDir(FWD,FWD);
MotorSpeed(255,255);
BackLED(ON,ON);
Sleep(216);
SerWrite("System OK!",10);
while(1); // Endlosschleife
return 0;
}
Dein Programm sieht an sich gut aus.
dabei erscheint folgende Fehlermeldung:
C:\ASURO_src\FirstTry>make all
set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=asuro.lst asuro.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > asuro.d; \
[ -s asuro.d ] || rm -f asuro.d
C:\Users\AnhDung\AppData\Local\Temp\make564602.sh: /c/WinAVR/bin/avr-gcc: Invalid argument Versuch mal eine neuere version von den WinAVR compiler zu installieren. Die version auf die Asuro CD funktioniert nicht immer korrekt mit Windows Vista und 7.
http://winavr.sourceforge.net/
radbruch
03.08.2010, 22:07
SerWrite("System OK!\n\r",12);
Die Steuerzeichen \n und \r bewirken, dass die Ausgabe im Terminal sofort dargestellt wird.
Gruß
mic
danke für die schnelle Antwort
Ich werde es noch mal versuchen
Danke Leute, mein Programm hat endlich funktioniert, es leuchtet endlich rot. :D :D
Ihr wart für mich ein große Hilfe!
Und nochmals vielen Dank!
Was genau war den Lösung?
Naja,ich habe die alte Winavr und die Datei von asuro aus mein Computer gelöscht.Dann habe ich die neue Version von heruntergeladen und den neue Flash153 aus dem Internet heruntergeladen und alles von vorne angefangen wie in der Anleitung. Ich weiß selbe nicht wie, aber irgend wie hat es funktioniert :-k :-k
vielleich war es wegen der Winavr oder vielleicht, weil ich die Datei "Asuro_src" in den Winavr Ordne kopiert habe
C:\WinAVR-20100110\ASURO_src
Keine Ahnung :?: :?:
Wie gesagt, ich habe erst gerade mit programmieren angefangen .
Und nochmals vielen Dank, dass ihr mich geholfen hat.
C:\WinAVR-20100110\ASURO_srcDas ist im Prinzip kein Problem. Nur wen du eine weitere neue version von WinAVR installieren willst, und vergist das deine Asuro Programmen noch dort drin sind... und dan verschwunden sind.
Die Programmen in einer mappe wie C:\ASURO_src setzten macht weniger Mühl auf deine festplatte. Aber dan muss in jeder makefile die Pfad zum WinAVR compiler angepasst werden.
-guenny-
19.09.2010, 16:16
Ich habe das selbe Problem wie du...
hab mir jetzt auch die aktuellste Version von WINAVR geladen und das Flash 1.5.3 tool. allerdings werden wenn ich compiliere, sprich auf make klicke, die selbstgeschriebene Zeile wieder entfernt.
--vor make----
#include"asuro.h"
int main(void)
{
Init();
StatusLED(RED);
while(1);
return 0;
}
---nach make---
#include"asuro.h"
int main(void)
{
Init();
while(1);
return 0;
}
Was ist da los?
radbruch
19.09.2010, 16:37
Speichern vergessen vor dem Kompilieren?
-guenny-
19.09.2010, 17:04
überragend!
danke
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.