Hallo Leute,
ich hab da mal ne Frage:
Ich hab mit einem Kumpel zusammen ein Linienfolgeprogramm geschrieben.
Nun habe ich vergessen das Programm auf meinen USB Stick zu ziehen und mitzunehmen.
Der Kumpel sitzt gerade in Südspanien und genießt seine Ferien.
Deshalb jetzt meine Frage:
Gibt es eine Möglichkeit, mit dem USB Transceiver die .hex Datei vom Asuro auf den PC zu übertragen und diese dann wieder in einen Quelltext, den ich mir ansehen kann umzuwandeln?
Das Programm hat nämlich einwandfrei funktioniert. Das, das ich geschrieben sagt mir aber, dass LineData "too few arguments" hat. Egal was ich versuche der meckert mit mir rum oder führt nicht das Richtige aus.
Da ich aber noch nichts anderes auf den Asuro geflasht habe, hab ich gerade noch die Hoffnung, dass man das irgendwie noch vom Asuro abgreifen kann.
Immerhin hat der ja die .hex Datei für sich gespeichert. Und was gespeichert ist, sollte doch auch abrufbar sein, oder?
Mit verzweifelten Grüßen
Andreas
Tiny ASURO Library: Thread und sf.net Seite
Also ich hab daran nochmal rumgearbeitet bis mir der Compiler keinen Fehler mehr ausgespuckt hat, allerdings bin ich mir nicht sicher ob das funktionieren wird und will das jetzt auch nicht flashen, bevor ich nicht weiß, dass das funktionieren wird. Denn im Moment ist ja noch das Programm drauf das funktioniert. Da muss ich nur noch die Radien versuchen zu verbessern, aber da hab ich auch schon eine Idee.
Da wäre dann der Code von dem Programm, wie ich es im Moment habe:
# include <asuro.h>
void sleep_ms(int ms){
while(ms>0){
Sleep(72);
ms=ms--;
}
}
void rechts_daneben (void){
BackLED(OFF,ON);
MotorSpeed(0,120);
sleep_ms(1000);
//MotorSpeed (120,120);
BackLED(OFF,OFF);
}
void links_daneben (void){
BackLED(ON,OFF);
MotorSpeed(120,0);
sleep_ms(1000);
//MotorSpeed(120,120);
BackLED(OFF,OFF);
}
void main (void){
unsigned int data [2];
Init();
MotorDir(RWD,RWD);
MotorSpeed(120,120);
FrontLED(ON);
while(1){
LineData(data);
if (data[0]!=data[1]){
if (data[0]>data[1]){
rechts_daneben();
}
else /*(data[0]<data[1])*/{
links_daneben();
}
}
else{
MotorDir(RWD,RWD);
MotorSpeed(120,120);
BackLED(OFF,OFF);
}
LineData(data);
}
}
Geändert von Andreas Bullmann (20.03.2013 um 18:09 Uhr)
Hallo
So kann ich das Fehler- und Warnungsfrei kompilieren:
Änderungen:Code:# include <asuro.h> void sleep_ms(int ms) { while(ms>0) { Sleep(72); ms--; } } void rechts_daneben (void) { BackLED(OFF,ON); MotorSpeed(0,120); sleep_ms(1000); //MotorSpeed (120,120); BackLED(OFF,OFF); } void links_daneben (void) { BackLED(ON,OFF); MotorSpeed(120,0); sleep_ms(1000); //MotorSpeed(120,120); BackLED(OFF,OFF); } int main (void) { unsigned int data [2]; Init(); MotorDir(RWD,RWD); MotorSpeed(120,120); FrontLED(ON); while(1) { LineData(data); if (data[0]!=data[1]) { if (data[0]>data[1]) { rechts_daneben(); } else /*(data[0]<data[1])*/ { links_daneben(); } } else { MotorDir(RWD,RWD); MotorSpeed(120,120); BackLED(OFF,OFF); } LineData(data); } }
Sleep(72);
ms--;
und
int main (void)
Das # include <asuro.h> funktioniert bei mir mit den <> nicht, ich brauche die "" (Libversion 2.3)
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Du kannst die Hex sichern bevor du das neue Programm flasht. Die Hex speicherst du dann und kannst es immer wieder flashen, wenn das andere Programm nicht funktioniert. Die Hex kannst du aber nicht in einen Quellcode wandeln.
MfG Hannes
Hannes: Dazu muss man das Hexfile aber haben ... und genau das war Teilproblem 1
@Andreas: Warum überschreibst du das Programm nicht einfach? Dein Kollege hat sicher noch die funktionierende Version, du kannst also an deinem Code selbst optimieren und nach dem Urlaub zeigt sich dann ob du den alten Quelltext überhaupt noch brauchst ...
mfG
Markus
PS: Versionsverwaltungssysteme (git + github!) sind was feines ...
Tiny ASURO Library: Thread und sf.net Seite
<klugschei* ein>
Genau genommen könnte er schon aus ner hex Datei Programmcode machen - rückassemblieren nennt sich das ganze. Es kommt dann aber keine C Sprache raus sondern "lesbare" Maschinensprache, eine Art Assembler
<\klugschei* aus>
praktisch findet dass in deinem Fall leider keine Anwendung
grüße
@markusj
Die Hex Datei hat er ja. Die befindet sich am Asuro, den man auslesen kann. Nur das umwandeln in einen Quellcode funktioniert nicht.
MfG Hannes
Naja, wie lange ist dein Freund den mit Ferien? Oder ist das ein Quasi-Emigration? Hat dein freund seine Rechner worauf das Hex steht mit genommen auf Ferien? (Hint: Email anhang) Oder steht es immer noch in seiner Hause?
Ich vermute das soll nur ein Beispiel von Geduld werden. Oder ein Lern-Periode wo du die Lösung wider von Anfang an Erfinden mag.
Lesezeichen