- HEMS Solar Speicher Tutorial    Werbung      
Ergebnis 1 bis 10 von 10

Thema: delay Fct erzeugen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    41
    Beiträge
    3.416
    ich würde einen Timer nehmen, den so einstellen, dass er jede mS überläuft und dann im Interrupt einen Counter dekrementieren bis er 0 erreicht, in der Warte-Funktion würde ich dann einfach solange if(counter>0); schleifen bis der COunter halt auf 0 ist. Wenn man jetzt weiterdenkt, könnte man nämlich während er wartet noch andere Dinge tun!

    Also quasi eine große Schleife, die neben der Bedingung "counter == 0" noch prüft obe es andere Arbeit gibt!

    alternativ kannst du auch einfach die <utils/delay.h> includen und _delay_ms(int) oder wenns kürzer sein soll _delay_us(int) verwenden (Achtung F_CPU makro mit frequenz muss definiert sein) dann sparst du dir es das Rad neu zu erfinden
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    23.03.2011
    Beiträge
    51
    danke, wie geht es mit dem Timer(CTC Modus)?
    LG
    Amal

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    41
    Beiträge
    3.416
    zum beispiel im CTC ...

    ich löse es vielleicht etwas unelegenat, indem ich eine zustandsautomaten programmiere, ich habe verschiedene variablen die die zustände der einzelnen zu bearbeitenden aufgaben darstellen, wenn ich jetzt den zustand des wartens erreiche, hab ich halt ne methode z.B. waitfortermination() die dafür sorgt dass mein programm quasi wartet dass entweder etwas abgeschlossen wird ODER ein timer abläuft, in der methode mache ich nichts anderes als den status auf waiting zu setzen (irgend ein bestimmter zahlenwert oder enum) und gleichzeitig den counter auf einen bestimmten wert zu setzen, in der mainschleife habe ich halt immer einen relativ dicken brocken if-abfragen der dann realisiert dass im falle eines timeout z.B. der "prozess" abgewürgt wird, oder dass ich vll. eine neue aufgabe starte

    EDIT: tschuldigung ist zu spät zum schreiben ^^
    der timer dekrementiert die counter dann solange bis sie wieder 0 erreicht hat, wenn es zu viele counter werden verliert man aber eventuell ein paar takte, man sollte also sparsam mit den countern umgehen, oder den timer entsprecchend langsamer (und damit gröber machen)
    Geändert von Ceos (19.07.2011 um 00:23 Uhr)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

Ähnliche Themen

  1. I2C delay
    Von Koertis im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 30.08.2010, 07:16
  2. edelay - exact delay
    Von s.o. im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 20.10.2008, 16:14
  3. [Frage?] die Delay TIme nicht stimmt mit <util/delay.h>
    Von PaMan im Forum C - Programmierung (GCC u.a.)
    Antworten: 9
    Letzter Beitrag: 03.08.2007, 15:57
  4. ATTINY13-20 und Delay?
    Von Dirk M im Forum C - Programmierung (GCC u.a.)
    Antworten: 7
    Letzter Beitrag: 06.03.2007, 20:23
  5. Delay Funktion (C)
    Von cbronson im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 06.10.2005, 14:45

Berechtigungen

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

    Werbung      Labornetzteil AliExpress