- 12V Akku mit 280 Ah bauen         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 23

Thema: _delay_ms()

  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.09.2004
    Ort
    In der Nähe von Esslingen am Neckar
    Beiträge
    706
    Anzeige

    Praxistest und DIY Projekte
    Hi Lekro,
    kannst des mal posten ich bin genauso gespannt wie pebisoft! ich dachte auch das so eine abruffertige Routine gehen muss!
    Gruß Michi

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    05.04.2005
    Beiträge
    66
    ...das ist nicht euer Ernst, oder? :/
    Zu _delay_ms gibt es doch insgesamt nur drei Zeilen Dokumentation. Die schnell selbst zu lesen geht bestimmt schneller, als hier zu posten.

    Na gut, weil ich mir heute unnötige Diskussionen ersparen will: Hier steht zu _delay_ms deutlich diese Anmerkung:
    Zitat Zitat von Doku
    The maximal possible delay is 262.14 ms / F_CPU in MHz.
    Um damit also 1000ms warten zu können bräuchtest du einen Takt von irgendwas unter 262kHz.

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    dann ist doch die ganze routine zum aufrufen völliger schwachsinn.
    dann müste ich 30000 eingeben wenn ich 1000ms warten soll bei 8mhz
    und rund 10000 wenn ich 1000us warten soll... oder...
    mfg pebisoft

  4. #14
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.09.2004
    Ort
    In der Nähe von Esslingen am Neckar
    Beiträge
    706
    hallo zusammen,
    *zusammensack* des ist ja idiotisch!
    Was bedeutet überhaupt zum Beispiel 10KHZ wieviel Impulse sind das pro Sekunde?
    Gruß Michi

  5. #15
    Benutzer Stammmitglied
    Registriert seit
    05.04.2005
    Beiträge
    66
    Zitat Zitat von pebisoft
    dann ist doch die ganze routine zum aufrufen völliger schwachsinn.
    dann müste ich 30000 eingeben wenn ich 1000ms warten soll bei 8mhz
    und rund 10000 wenn ich 1000us warten soll... oder...
    Nein, der Parameter bezeichnet schon die Millisekunden. Der Trick hinter _delay_ms ist, dass mit dem Parameter eine Berechnung durchgeführt wird, und zwar zur Compilezeit. Das heißt, der Compiler rechnet den übergebenen Wert von ms nach "Wartetakte" um. Für diese Umrechnung braucht der Compiler eben die Takt-Geschwindigkeit des Mikrocontrollers, da bei höherem Takt die Wartschleife schneller durchläuft als bei niedrigerem. Bei höherem Takt muss der Compiler den Parameter "1 ms" z.B. in mehr Wartetakte umrechnen als bei einem langsamen Takt.

  6. #16
    Benutzer Stammmitglied
    Registriert seit
    05.04.2005
    Beiträge
    66
    Zitat Zitat von michaelb
    Was bedeutet überhaupt zum Beispiel 10KHZ wieviel Impulse sind das pro Sekunde?
    1 Hz ("1 Hertz") bezeichnet eine Schwingung pro Sekunde. 10 kHz sind also 10.000 Takt-Impulse pro Sekunde.

    Du kannst den AVR aber soweit ich weiß minimal mit einem Uhrenquarz, also etwa 32kHz, takten. Aber selbst das kann schon zu Schwierigkeiten führen (zu langsam für manche ISP-Adapter o.ä.).

  7. #17
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    dann frage ich, warum funktioniert mein srf04 mit _delay... nicht. nach der aussage von lekro müsste es aber funktionieren....weil....weil ja die _delayroutine automatisch umrechnet.
    funktioniert aber nicht.
    mfg pebisoft

  8. #18
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.09.2004
    Ort
    In der Nähe von Esslingen am Neckar
    Beiträge
    706
    hi lekro,
    danke für deine Antwort! Hat für mich einiges klargestellt!
    gruß Michi

  9. #19
    Benutzer Stammmitglied
    Registriert seit
    03.08.2004
    Ort
    München
    Beiträge
    52
    BTW: so ist das problem leicht zu lösen:
    Code:
    uint_8 temp;
    
    ...
    
    temp = 0;
    while(temp < 152) //Delay von 5 Sekunden
    {
    _delay_ms(33); /*maximal mögliche Delay-Zeit: 262,14ms/F_CPU in MHz
    								Bei 8Mhz = 32,77ms*/
    temp++;
    }
    Man muss die Welt nicht verstehen,
    man muss sich nur in ihr zurecht finden.
    [A. Einstein]

  10. #20
    Neuer Benutzer Öfters hier
    Registriert seit
    29.05.2004
    Ort
    Zuhause
    Alter
    38
    Beiträge
    28
    Nur als anmerkung, ich denke bei längeren wartezeiten ist es sinnvoller einen Timer-Interrupt zu verwenden, da hier der µc auch während des "wartens" noch zur verfügung steht.

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress