Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Msleep
Mk1.12.91
28.01.2010, 19:59
Hallo
ich habe in der Schule im Ramen der SIA(Schüler Ingenieur Akademie) den Asuro gebaut.
nun gings ans Programmieren .
Soweit alles gut .
die ersten programme liefen auch
aber nun kommt das Problem
als wir in der Schule an den Schulrechnern zum ersten mal den c Befehl Msleep verwendeten hat es in der schule noch super funktioniert
nun hab ich mir das programm aber zuhause auf den rechner geladen und musste leider feststellen das wenn ich auf make klicke der fehler
C:\ASURO_src\examples\FirstTry/test.c:10: undefined reference to `Msleep'
C:\ASURO_src\examples\FirstTry/test.c:12: undefined reference to `Msleep'
kommt
somit kann es nicht beendet werden
da es für mich echt wichtig ist brauche ich schnelle hilfe
wenn es geht dann auch mit ausführender lösung für einen anfänger
Dank im vorraus
MFG Mk1.12.91
radbruch
28.01.2010, 21:07
Hallo
Msleep() sieht etwa so aus:
void Msleep(unsigned int pause) // ca. 1/1000 Sekunde Pause blockierend
{
while(pause--) Sleep(72);
}
wenn es geht dann auch mit ausführender lösung für einen anfängerAha. Msleep() ist Bestandteil der erweiterten asuro-Library, welche wohl auf euren Schulrechnern installiert ist. Um in den Genuss von Msleep() zu kommen würde es ausreichen, nur den Code der Funktion in dein Program einzufügen:
#include "asuro.h"
void Msleep(unsigned int pause) // ca. 1/1000 Sekunde Pause blockierend
{
while(pause--) Sleep(72);
}
int main(void)
{
Init();
...
Eine weitere zusätzliche Funktion ist PrintInt() zur Ausgabe von Zahlen auf dem Terminal:
void PrintInt(int wert)
{ char text[6]=" ";
itoa(wert,text,10);
SerWrite(text,5);
}
Gruß
mic
Mk1.12.91
28.01.2010, 21:46
oh ich glaube ich habe nihct genau ausgedrückt
ich weiss wie man msleep anwendet das hat mir der lehrer erklärt
aber was mein problem ist wenn ich die test.c umwandeln möchte in die die man flashen kann dann hab ich das prob dass der im ersten post genannte error kam ...
MFG Mk1.12.91
radbruch
28.01.2010, 22:28
... weil weder in deiner test.c noch in deiner asuro.c die Funktion Msleep() definiert ist. Deshalb kannst du sie selbst in deine test.c irgendwo vor main() einfügen. Dann "weiß" der Kompiler was Msleep() bedeutet und kann das Programm in eine flashbare Hex-Datei umwandeln.
Gruß
mic
Mk1.12.91
29.01.2010, 14:36
ok danke für die hilfe
aber komisch finde ich dennoch dass es in der schule auch ohne ging ...
MFG Mk1.12.91
Hallo
In deiner Schule ging es, da dort eine andere Libary installiert ist. Eine erweiterte um genau zu sein die den Befehl Msleep behinhaltet den du einfach aufrufen kannst. Deine Libary ist nicht erweitert und beinhaltet nicht den Befehl Msleep den du wie oben beschrieben manuel einfügen musst.
Aus der Libary werden alle Befehle bezogen --> heißt wenn du im Programm sagst MotorDir(FWD,FWD) wird in der Libary geguckt was der Befehl für den Robo bedeutet bzw was der dann machen soll um dann zu übersetzen (kompilliert) und die zu flashende Datei gebrauchsfertig für den Roboter zu machen. Da Msleep nicht bei dir drinn steht weiß deine Libary nichts damit anzufangen und meldet Error.
Gruß Thund3r
Mk1.12.91
01.02.2010, 16:07
danke für die hilfe habe eine lib aus der schule installiert und jetzt funktioniert es ...
MFG und danke Mk1.12.91
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.