- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 5 von 5

Thema: Fragen für Anfänger

  1. #1

    Fragen für Anfänger

    Anzeige

    Praxistest und DIY Projekte
    Juhu!!!


    Wie muss ich die Funktion Sleep in mein Programm einbauen, dass es auch funktion =)?????

    Beispiel:

    #include "asuro.h"

    int main(void)
    {

    Init();

    BackLED(ON,ON);
    Msleep(10000); //"Msleep" oder nur "Sleep"?
    BackLED(OFF,OFF);
    Msleep(10000);
    BackLED(ON,ON);


    while(1);
    return 0;
    }

  2. #2
    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,

    willkommen im RN-Forum.

    Die orginale Version der asuro-Library kennt die Funktion Msleep() noch nicht. Hier muss man also Sleep() verwenden. Da der Timer damals noch mit 72kHz lief, dauert ein Sleep() 1/72000 Sekunde, ein Sleep(72) entsprechend 0,001 Sekunde. Ein Programm das die BackLEDs im Sekundentakt endlos ein- und ausschaltet könnte z.B. so aussehen:

    Code:
    #include "asuro.h"
    
    int main(void)
    {
    	int i;
    	Init();
    
    	while(1)
    	{
    		BackLED(ON,ON);
    		for(i=0; i<1000; i++) Sleep(72); // Sleep(72) dauert 0,001 Sekunden
    		BackLED(OFF,OFF);
    		for(i=0; i<1000; i++) Sleep(72);
    	}
    	return 0; // Diese Zeile wird nie erreicht
    }
    Programme sollte man hier in Code-Tags einschliessen, Einrückungen erhöhen die Lesbarkeit des Programms. Außerdem hat das RN-Forum einen asuro-Bereich:

    https://www.roboternetz.de/phpBB2/viewforum.php?f=44

    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!

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.10.2009
    Ort
    Näher, als du denkst!
    Beiträge
    108
    So ist es einfacher. Msleep ist nämlich in der ASURO Bibliothek (asuro.h) definiert. (Parameter entspricht Millisekunden!)

    Code:
    #include "asuro.h"
    
    int main(void)
    {
       Init();
    
       while(1)
       {
          BackLED(ON,ON);
          Msleep(1000);
          BackLED(OFF,OFF);
          Msleep(1000);
       }
       return 0; // Diese Zeile wird nie erreicht
    }
    mfg
    Tach810i

  4. #4
    Danke schön für eure Antworten!

    Werde es nachher mal ausprobieren... und dann berichten, ob es geklappt hat.

  5. #5
    Die erste Variante hat funktioniert. Danke.....

Berechtigungen

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

Labornetzteil AliExpress