PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Asuro führt kein Programm aus



kerberos
04.01.2009, 13:46
Hallo,
ich bin neu hier und habe versucht einen passenden Eintarg zu meinem Problem zu finden. Hat nicht geklappt, deshalb meine Frage an Euch.
Ich habe mir zu Weihnachten einen Asuro geschenkt.
Das Zusammenbauen hat auf Anhieb geklappt. Der Selbsttest lief einige Male einwandfrei durch.
Ich habe dann versucht das erste Testprogramm, bei dem nur die StatusLED auf ROT geschaltet wird, dem Kleinen bei zu bringen. Geht aber nicht.
Nach dem make-Kommando im ProgrammersNotepad kam die Meldung ExitCode 0 und auch das Flashprogramm meinte das Asuro alles verstanden hat und nun bereit ist das Programm auszuführen.
Nach dem Einschalten und der Sekunde zum Booten wurde die StatusLED Grün. Dies geschieht auch bei anderen Demoprogrammen von der CD.
Flashen geht einwandfrei, zumindest den Meldungen nach, machen tut der Kleine aber nichts, außer die StatusLED auf grün zu schalten.
Ich habe auch versucht die StatusLED über den Befehl <StatusLED(GREEN)> rot zu bekommen (wegen möglichem Einbaufehler). Klappt aber auch nicht.

Vielleicht kann mir jemand einen Rat geben.

Vielen Dank.

hai1991
04.01.2009, 14:07
hallo

hast vorm kompillieren gespeichert?
das ist ein häufiger anfängerfehler

kerberos
04.01.2009, 14:22
Vielen Dank für die schnelle Hilfe. Das war der Fehler.
Nun steht viel Ärger mit der Familie ins Haus, da ich vor Mitternacht nicht mehr ansprechbar sein werde. :cheesy:

Nochmals Danke hai1991

orusa&amp;#9786;
18.01.2009, 19:24
oh gut, diese frage hatte ich auch. ich bin komplett neuling, und dass man vorm kompilieren speichern muss, stand in der anleitung nicht drin...

malediction
20.01.2009, 20:16
ihr müsst immer schauen, ob neben dem dateinamen oben im reiter ein sternchen ist. wenn ja, heißt das, dass veränderungen vorgenommen wurden und dann muss man eben erst speichern.

aber damit kann man das relativ schnell sehen.

vnm
07.02.2009, 15:07
hallo
habe daselbe problem. nur habe ich vorher gespeichert.
ich kann auch ohne probleme das selftest programm wieder draufladen. aber andere programme gehen nicht.

malediction
07.02.2009, 15:25
hast du denn schon eine c-datei in eine *.hex übersetzt bekommen, sodass du diese flashen könntest, oder liegt es am übersetzen?

vielleicht das problem etwas präziser beschreiben, damit man weiß, was bei dir genau nicht geht.

vnm
07.02.2009, 15:32
ja es ist bei mir genauso wie kerberos es beschrieben hat. es scheint alles zu funktionieren. ich erhalte eine *.hex datei die kann ich auch flashen. aber es leuchtet nachdem ich den schalter von asuro abgeschaltet und wieder eingeschaltet habe die status led orange und danach nur noch grün und sonst passiert nichts. wenn ich aber wieder die selftest.hex flashe geht alles ohne probleme. danke

malediction
07.02.2009, 16:41
poste doch mal dein programm, dann könnte man mal schauen, ob du vielleicht ein fehler im programm hast.
denn wenn das compilieren richtig funktioniert, müsste es theoretisch am programm liegen.

grüße...

Mars 018
07.02.2009, 22:20
hallo bin auch neu habe meinen asuro schun was länger aber bei mier laufen keine selber geschribene pro. immer wenn ich geflasht habe leuchtet nur die status led dauerhaft grün habe schun andere pro. probier haben alle einwandfrei geklapt hatte früher xD vor weinachten mal angefanngen mit c++ lernen mit dem buch c in 21 tagen und habe daher schun nen par grundkentnisse aber hier verzweifle ich wirklich
mein pro

#include “asuro.h”
int main(void)
{

Init();
StatusLED(GREEN); //status led on
FrontLED(ON); // front led on
BackLED(ON,ON); //back led on
while(1); // Endlosschleife
return 0; // ende
}


nun ja hoffe mal das ich alles richtig habe ??? [/code]

novatrust
07.02.2009, 22:31
Hallo Mars 018,

was möchest du mit diesem code denn machen? wenn du den asuro mit diesem code flashst und einschaltest wird die status-led dauerhaft grün leuchten, sowie die front-led und back-leds angehen und rot leuchten.

ist dein problem, dass bei obigen code nur die status-led grün leuchtet?

Mars 018
07.02.2009, 22:49
nein es passier halt garnix nur die status led bleibt dauerhaft rot aber warum ??? ja die led´s sollten alle leuchten nur mal fürn anfang

thx für die schnelle antwort

novatrust
07.02.2009, 23:09
du hattest oben geschrieben "dauerhaft grün" ;-)
wurde beim flashen vielleicht ein fehler gemeldet?

edit: Wenn kein Fehler aufgetreten ist, übertrage am besten noch einmal das testprogramm auf den asuro um zu überprüfen, dass alle grundfunktionen ohne fehler funktionieren. das programm befindet sich auf der asuro-cd ..\ASURO_src\SelfTest\SelfTest.hex

malediction
08.02.2009, 07:41
hi mars...

also um den fehker eingrenzen zu können, probiere/überprüfe mal bitte folgendes und poste die ergebnisse.

1. du hast dein programm in der datei test.c geschrieben (also diese sozusagen "überschrieben").
2. du hast die datei vor dem compilieren gespeichert.
3. du verwendest alle standard programme (WinAVR, Flash-Tool) und bibliotheken von der cd.
4. du hast das tool "make" so eingerichtet, wie es in der anleitung steht und die dateien test.c und asuro.h, asuro.c alle in den ordnern belassen, in denen sie ursprünglich enthalten waren.
5. das flashen klappt problemlos (teste das mal an selftest.hex (wie novatrust schon gesagt hat)) und ohne ständige fehlermeldungen und asuro macht dann auch das was er machen soll.
6. ich glaube dein programm müsste ansich (von der programmiertechnischen seite her) laufen. du hast allerdings geschrieben




#include “asuro.h”


ersetz das mal durch


#include "asuro.h"
speicher das ganze und versuch es zu compilieren und zu flashen.

und wenn du das alles gemacht hast, sag uns deine ergebnisse. ;)

viel erfolg und liebe grüße...

Mars 018
08.02.2009, 08:18
ja das asuro.h steht natürlich beim original pro in "" hmm ja benutze original programme auser zum flashen benutze ich flash1.4 ansonsten alles original ich mache auch vorm compilieren mit clean allesweg und dan mit mack neu speicher auch alles wüste nicht was ich falsch gemacht habe gibt es eine bestimmte datei die ich löschen muss hmm alle anderen pro. also runter geladen oder so gehen auch selbstest ohne probleme telnet funzelt auch also ich glaub mal das ich entweder i-was vergesse zu löschen oder die includet datei oder so ffutsch ist oder veraltet ansonnsten nur original pro.

ps. danke für die schnelle antwort


@novatrust ja war schreibfehler sie ist rot und soll grün werden ja test programm funkioniert alles auch flashen geht ich glaube das ich fergesse i-was zu löschen weis aber nicht was habe ja dateien im original ordner

hmm was vil noch interesant ist das 1. program was ich geschrieben habe sollte nur die led also die status led rot machen a) das hat gefunzelt und das ist nun noch immer die hex datei b) das hat nicht gefunzelt und die ist wegen i-ein fehler rot ich schätze das ich immer das alte programm flashe weil das jedesmal 24 packete sind ??? asuer bei anderen pro


ich hoffe mal das war nicht zu verwirrend

malediction
08.02.2009, 09:09
etwas verwirrend ist nur dein schreibstil ;)

aber nun zurück zum problem.
also vergessen etwas zu löschen kann eigentlich nicht die ursache für dein problem sein. denn der compiler baut dir ja dein programm so, dass es asuro lesen kann, in EINE datei: die test.hex-datei. von daher könntest du theoretisch nach dem compilieren ALLES löschen (außer natürlich test.hex) und es würde trotzdem noch gehen. das ist im übrigen auch der grund, weshalb bei dir *.hex-programme von anderen benutzern laufen.

ich würde eher vermuten, dass bei dir beim compilieren etwas schief geht... erhältst du irgendwelche fehlermeldungen, wenn du auf "make" klickst?


also folgendes:
bist du dir wirklich zu 100% sicher, dass du die richtigen "" verwendest?!
denn ich hab eben dein programm hier rauskopiert und versucht zu übersetzen.
wenn ich es 1-zu-1 übernehme, kommen viele fehler, weil der präprozessor die anderen " nicht kennt. und damit asuro.h (welche alle werte und funktionsdeklarationene enthält) nicht einbinden kann.
also geht nix.

wenn ich dann die " ersetze geht alles problemlos.
beim flashen hab ich jedoch nur 12 sieten und nicht 24. das kann aber dara liegen, dass ich die aktuelle RN-lib verwenden.

dein programm aber geht bei mir ohne weiteres...
es ist im anhang.

somit können wir schon mal asuschließen, dass es ein programmierfehler (abgesehen von den "") ist...

Mars 018
08.02.2009, 09:23
hmm ja ich habe mich auch schun über die "" gewundert weil das mit anderen compilern habe ich das zumin nie gebraucht

so nun habe ich deine datei geflasht und es geht ??? kan das sein das die asuro.h datei?? kaput ist oder sowas aber hab se ja von der original cd gibt es alternativen hmm bzw eine für das notepad2 ??? hatte früher immer nen ganz anderes hab mal angefangen kleine rechneprogramme zu schreiben aber auch egal dein hex datei funzelt ich probiere mal ohne die ""

thx für die schnelle antwort



habe nun noch mal den ganzen ordner runter gezogen und die "" wegelassen und ansonnsten alles gleich und wieder nur die status led rot also wieder nicht gefunzelt aber am asuro ist alles in ordnung und flshen geht auch hmm

malediction
08.02.2009, 09:30
also wie gesagt... das einezige was ich verändert hab waren die ""

hier der code, den ich compiliert und geflahst hab:


#include "asuro.h"
int main(void)
{

Init();
StatusLED(GREEN); //status led on
FrontLED(ON); // front led on
BackLED(ON,ON); //back led on
while(1); // Endlosschleife
return 0; // ende
}

einziger unterschied der nun noch bleib ist, dass ich eine andere lib habe. also wenn das so bei dir auch net geht, dann liegt es wirklich an der lib...

Mars 018
08.02.2009, 09:43
okay also woher bekomme ich die lib ?? ist das bei mir jetzt die asuro.h ??? hmm okay ich suche mal

malediction
08.02.2009, 10:16
naja im regelfall (wenn du nichts an den ausgangsdateien von der cds veränderst [mal test.c ausgenommen]) ist die lib dabei und in deinem fall ist es die kombination von asuro.h und asuro.c

hier kann man ansich nicht direkt von lib reden, da es "nur" 2 dateien sind, aber diese enthalten eben alles, was du benötigst, damit asuro läuft... daher ist es die lib.

es gibt jedoch eine lib (bilbiothek) von roboternetz-usern, die mehr funktionen enthält. diese ist allerdings schwierig zu installieren. diese habe ich. daher hatte ic hdas vorher gesagt.

gehts denn jetzt, wenn du die "" änderst?

hai1991
08.02.2009, 10:25
hallo zusammen

also ich kann mir nicht vorstellen, dass es an der lib liegt, denn du verwendest nur originalfunktionen

hast du den oben geposteten code schon probiert (mit den geänderten ")?

oder kommt bei dir beim compilieren eine fehlermeldung?
kannst du mal einen scrennshot machen, nach dem du compiliert hast und diesen posten?
vl ist daraus etws ersichtlich

Mars 018
08.02.2009, 10:40
also ich hab jetzt die gesamte software noch mal neu instaliert hmm aber geht auch nicht und komischerweise egal wie gross mein pro. ist es sind immer 24 packete zum senden ??? auser natürlich bei anderen pro. die ich gedownlodet habe hmm nein keine fehler meldungen soweit ich das sehe


habe nen so einfaches pro gewählt da kan fast nix mehr falsch sein


#include asuro.h
int main(void) {
Init();
StatusLED(GREEN);
BackLED(ON);
while(1);
return 0;
}



und nun das was der compiler sagt



C:\programme zum programieren vom roboter\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
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.

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:
test.elf :
section size addr
.text 1512 0
.data 0 8388704
.bss 1 8388704
.noinit 0 8388705
.eeprom 0 8454144
.stab 3120 0
.stabstr 1727 0
Total 6360


Errors: none
-------- end --------

> Process Exit Code: 0



äm aber wie hängt man ne datein bild oder so an ???

malediction
08.02.2009, 10:50
also erst mal: im gepostetetn code hast du jetzt die "" bei #include "asuro.h" komplett vergessen... da dürfte der compiler dir ansicht nicht sagen:



Errors: none

denn er dürfte dann alle funktionen wie StatusLED() und alle vereinbarungen wie GREEN nicht kennen, weil er asuro.h eigentlich nciht einbinden dürfte, wenn da keine "" sind...

komisch...
bist du sicher, dass der compiler text von deinem geschrieben programm kommt...?! nicht dass du die ganze zeit ein und dasselbe (falsche) programm kompilierst, was iwo an einem anderen ort liegt.
das würde im übrigen auich erklären, warum die datei immer gleich groß ist...

welchen pfad gibst du denn im flash tool für die *.hax datei an?

radbruch
08.02.2009, 10:54
Hallo

Trotz der vielen Beiträge verstehe ich nicht was das eigentliche Problem ist.


habe nen so einfaches pro gewählt da kan fast nix mehr falsch sein
Ich war mal so frei und habe es etwas korrigiert:

#include "asuro.h" // "" fehlen
int main(void) {
Init();
StatusLED(GREEN); // StatusLED ist nach Init() immer grün!
BackLED(ON,ON); // Syntaxerror
while(1);
return 0;
}


Gruß

mic

Mars 018
08.02.2009, 12:37
mein problem ist ganz einfach das die status led halt nie grün ist immer rot !!! so also dem compiler ist es bei mir i-wie egal ob mit "" oder ohne "" hmm ja ich glaube auch bald das ich i-wie immer das gleiche program compiliere weil mein erstes pro sole nur die status led rot machen hm habe nun aber die ganze software auf meinen laptop neu instaliert komischerweise waren aber die make einträge im menü tools beim notpad schon da obwohl ich die noch garnicht erstell habe hmm das problem is aber das gleiche ich mache den asuro an die status led ist gelb oder orang ?? nun ja das etwa 3 sekunden dabei glimmen beide back led's danach ist die satus led rot und die back led's aus egal wie mein programm ausieht auch ist das programm beim schicken immer 24 packete gross ???

hai1991
08.02.2009, 13:22
hast du auch wirklich das test.c aus dem firtstry ordner geändert, und nicht ein anderes?

radbruch
08.02.2009, 15:34
Hallo


mein problem ist ganz einfach das die status led halt nie grün ist immer rot !!!
Mit Plenken (http://de.wikipedia.org/wiki/Plenk) und vielen Ausrufezeichen wird die StatusLED sicher auch nicht grün ;)


danach ist die satus led rot und die back led's aus egal wie mein programm ausieht
Das sieht wirklich sehr danach aus dass du immer die selbe Hex-Datei sendest.

Gruß

mic

Mars 018
08.02.2009, 17:52
also ich habe tatsächlich immer ein und das gleiche pro geflasht und deßhalb hatte ich immer 24 packs hmm aber nun gehts soweit erst mal zumin weis ich nun das ich das speichern i-wie vergessen hatte nehme sowieso jetzt mein lapi thx ann alle die mir geholfen haben

malediction
08.02.2009, 18:26
AHHHHHHHHHHHH...........

da redet man sich den mund wund und dann isses doch die einfachste lösung vom anfang...

LEUTE!! Erst selber denken, dann fragen!!!

radbruch
08.02.2009, 20:06
Tja, dann mach' ich mal 'nen weiteren Strich beim Einsteigerfehler Nr.1: "Speichern vergessen"

vnm
08.02.2009, 20:31
Bei mir funktioniert jetzt dieser code


#include “asuro.h”
int main(void) {
Init ()
while (1) {
if (PollSwitch()>0) {StatusLED (RED);}
else {StatusLED (GREEN);}
}
}

Einfach mit " " statt hmm... statt den anderen "schrägen Anführungszeichen" :-)

Aber ich weiss ehrlich gesagt nicht genau wieso. Ich habe meiner Meinung nach nichts anderes gemacht als vorher.
Trotzdem Danke Schön!!

malediction
09.02.2009, 07:35
also bei mir (ich verwende die aktuelleste version von winavr) geht das definitiv nicht.
vielleicht wurde der compiler überarbeitet. ich weiß es nicht.

Desti1989
17.06.2009, 19:03
boah vielen dank für den tipp mit dem speichern ._.