-         

Ergebnis 1 bis 7 von 7

Thema: Problem mit Msleep

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    28.01.2010
    Beiträge
    18

    Problem mit Msleep

    Anzeige

    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

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    Hallo

    Msleep() sieht etwa so aus:
    Code:
    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änger
    Aha. 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:

    Code:
    #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:

    Code:
    void PrintInt(int wert)
    {  	char text[6]="      ";
    	itoa(wert,text,10);
    	SerWrite(text,5);
    }
    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    28.01.2010
    Beiträge
    18
    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

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    ... 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

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    28.01.2010
    Beiträge
    18
    ok danke für die hilfe
    aber komisch finde ich dennoch dass es in der schule auch ohne ging ...

    MFG Mk1.12.91

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.01.2009
    Ort
    NRW
    Beiträge
    561
    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

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    28.01.2010
    Beiträge
    18
    danke für die hilfe habe eine lib aus der schule installiert und jetzt funktioniert es ...

    MFG und danke Mk1.12.91

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •