- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Asuro C / Msleep geht nicht

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    26.11.2008
    Alter
    30
    Beiträge
    70

    Asuro C / Msleep geht nicht

    Anzeige

    Praxistest und DIY Projekte
    Hallo
    Ich bin dabei ein Prog zu schreiben wo die Front LED blinkt aber leider kommt dabei eine Fehlermeldung
    Code:
    #include "asuro.h"
    
    int main(void)
    {
    	Init();
    	while(1) 
    	{
    	      FrontLED(ON);
    	      Msleep ( 2000 ) ;
    	      FrontLED(OFF);
    	      Msleep ( 2000 ) ;
    	}
    	return 0;
    }

    Was ist da falsch
    Ich habe einen Win Vista und programmiere mit Programmers Notepad 2

    MFG FredWeise

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.01.2008
    Alter
    33
    Beiträge
    239
    hallo

    kannst du die fehlermeldung mal posten, dann kann man vl mehr sagen
    mfg hai1991

    P.S.: wer großbuchstaben oder rechtschreibfehler findet darf sie behalten

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    26.11.2008
    Alter
    30
    Beiträge
    70

    Fehlermeldung

    So sieht sie aus
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken screen_145.jpg  

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Die orginale Library von der CD kennt die Funktion nicht, du kannst sie aber einfach in dein Programm reinkopieren:
    Code:
    void Msleep(int dauer)
    {
    	int z;
    	for(z=0;z<dauer;z++) Sleep(72);
    }
    
    void PrintInt(int wert)
    {  	char text[6]="      ";
    	itoa(wert,text,10);
    	SerWrite(text,5);
    }
    (Aus der erweiterten asuro-Library)

    In der orginalen Lib laüft der Timer mit 72kHz, deshalb dauert dann Sleep(72) eine Millisekunde. Bei den neueren Libs mit 36kHz-Timer steht hier Sleep(36).

    Mit PrintInt() kann man Zahlen direkt zum Terminal schicken:

    int a=12345;
    PrintInt(a);
    SerWrite("\n\r",2);

    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!

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    26.11.2008
    Alter
    30
    Beiträge
    70
    Danke und wo kopiere ich das nun genau rein

    MFG FREDWEISE

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.01.2008
    Alter
    33
    Beiträge
    239
    hallo

    wenn ich mich nicht irre benutzt du die originallib. von der CD und da gibt es kein Msleep
    in diesem fall kannst du nur Sleep verwenden.
    Msleep gibt es erst in der von diesem forum weiterentwickelten lib
    mfg hai1991

    P.S.: wer großbuchstaben oder rechtschreibfehler findet darf sie behalten

  7. #7
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Alle "selbstgeschriebenen" Funktionen kann man zwischen #include und vor main() einfügen:
    Code:
    #include "asuro.h" 
    
    void Msleep(int dauer) 
    { 
       int z; 
       for(z=0;z<dauer;z++) Sleep(72); 
    }
     
    int main(void) 
    { 
       Init(); 
       while(1) 
       { 
             FrontLED(ON); 
             Msleep ( 2000 ) ; 
             FrontLED(OFF); 
             Msleep ( 2000 ) ; 
       } 
       return 0; 
    }
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    04.04.2005
    Ort
    Hamburg
    Alter
    36
    Beiträge
    826
    http://sourceforge.net/projects/asuro

    Da findest du übrigens die neuste Lib
    www.subms.de
    Aktuell: Flaschcraft Funkboard - Informationssammlung

  9. #9
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Da findest du übrigens die neuste Lib
    ... die du aber nur installieren solltest wenn du die erweiterten Funktionen auch wirklich brauchst. Den asuro kann man meiner Meinung nach aber mit der orginalen Lib einfacher erkunden.

    Natürlich ist die aktuelle Version gut und wichtig, aber wer mal selbst versucht die Odometrie auszuwerten oder die Motoren zu regeln lernt auch, wie das funktioniert.
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    27.12.2008
    Ort
    Dresden
    Alter
    37
    Beiträge
    100
    da ist was wahres dran, radbruch.

    nur ist für manche der asuro eher ein "spielzeug" und kein lernobjekt. daher ist er (wenn die lib erst mal installiert ist) sehr viel einfacher zu programmieren...

    auch wenn da leider der lernfaktor ein wenig drunter leidet.
    ich bin aber auch der meinung, dass man sich, wenn man c wirklich lernen will, ein Buch kaufen (oder ausleihen) sollte und dann hiermit (und mit asuro) sieht, was man für möglichkeiten hat.

    bei der hardwarenahen programmierung des asuro kann es jedoch (gerade für anfänger) schwierig werden, zu verstehen, welches teil wofür sorgt und wie man das mit der dem programm ansprechen und beeinflussen kann.
    Der Optimist: \"Das Glas ist halb voll.\"
    Der Pessimist: \"Das Glas ist halb leer.\"
    Der Ingenieur: \"Das Glas ist doppelt so groß wie es sein müßte.\"

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress