- Labornetzteil AliExpress         
Ergebnis 1 bis 7 von 7

Thema: Zeitverzögerung/modifizierte delay.h

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    17.02.2005
    Ort
    Pfullingen, am Rande der Schwäbischen Alb
    Alter
    41
    Beiträge
    56

    Zeitverzögerung/modifizierte delay.h

    Anzeige

    Praxistest und DIY Projekte
    Servus alle zusammen!

    Hab nun seid einiger Zeit dieses Forum hier abgegrast, und nun denke ich wird es auch mal Zeit selber zu posten.

    Hab bis jetzt immer Probleme mit dem "_delay_loop" als Funktion gehabt und mich darüber geägert das das es beim WinAVR einen nicht so einfachen Befehl zur Zeitverzögerung gibt wie beim Bascom. Falls es noch mehr Leute gibt denen es ähnlich geht hier die Lösung:

    http://www.tobi1024.de/doc/delay.h

    einfach in das Verzeichnis: \WinAVR\avr\include\avr unter beliebigen Namen speichern, und dann im Quellcode als

    #include <avr/_delay.h> einbinden (Bei mir im Beispiel habe ich die Datei _delay.h genannt).

    Der Befehl zum Verzögern dann so einbinden:

    delay_ms (x);

    wobei das x für die Zeit in ms steht.


    viel Spass damit
    gruss Siggi

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    Wobei du noch vielleicht dazu sagen solltest, das das ganze nur für 4 und 8 Mhz Taktfrequenz gilt. Alle anderen muss man sich trotzdem immer noch selbst zusammenbauen...

    MfG Kjion

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.11.2003
    Ort
    Alfeld (50km südl. Hannover)
    Alter
    41
    Beiträge
    237
    In der neusten libc gibt es den Befehl
    _delay_ms (double __ms )
    und
    _delay_us(double __us )
    Wenn F_CPU mit der Quarzfrequenez definiert ist, berechnet er die Pausenzeiten
    automatisch.

    siehe:
    http://www.nongnu.org/avr-libc/user-...vr__delay.html
    Open Minds. Open Sources. Open Future

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    17.02.2005
    Ort
    Pfullingen, am Rande der Schwäbischen Alb
    Alter
    41
    Beiträge
    56
    Ok, danke für die Antworten.

    @Kjion:

    hast Recht, dass habe ich vergessen noch zu sagen...

    @Thorsten:
    danke für den Tipp, rufe ich dann die Funktionen so auf:

    _delay_ms (double __"zeitwert")?

    Hab da in deinem Link gelesen, dass es aber nur eine max. Verzögerung bis zu 262.14 ms / F_CPU in MHz geben kann. Damit wäre doch die von mir gepostete Lösung hinsichtlich längerer Verzögerungen besser, oder?

    gruss Siggi

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.11.2003
    Ort
    Alfeld (50km südl. Hannover)
    Alter
    41
    Beiträge
    237
    Hi

    rufe ich dann die Funktionen so auf:
    _delay_ms (double __"zeitwert")?
    Die Funktion wird einfach mit _delay_ms(x) oder _delay_ms(15)
    aufgerufen. Die Beschränkung auf 262.14 ms ist mir noch garnicht
    aufgefallen, da ein double Wert übergeben werden kann hab ich mit
    mehr gerechnet. Ich habe die Funktionen selber auch noch nicht verwendet,
    weil sie halt blockierend sind.
    Open Minds. Open Sources. Open Future

  6. #6
    Gast
    Servus Thorsten,

    danke für die Antwort. Im Prinzip könnte man ja dann die delay-Funktion mehrmals hintereinander aufrufen *g*.

    Ich war halt glücklich was gefunden zu haben mitdem ich eine Verzögerung über mehrere Sekunden schaffen konnte...
    Zu dem Thema blockierend:

    ist in meinem Fall egal, da solange der delay läuft keine weiteren Eingangssignale an den Controller kommen...
    Soll im Prinzip nur einen Motor kurze Zeit ansteuern.

    Vielleicht wäre es sinnvoll einen Schrittmotor zu nehmen, hab aber erstmal nach der Lösung mit dem geringsten Aufwand gesucht...

    gruss Siggi

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    17.02.2005
    Ort
    Pfullingen, am Rande der Schwäbischen Alb
    Alter
    41
    Beiträge
    56
    komisch, warum wird da eigentlich als Autor "Gast" angezeigt?
    Hat da was mit dem einloggen nicht geklappt?

    was solls...

    gruss Siggi

Berechtigungen

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

12V Akku bauen