-         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: delay-Ersatz ohne loop-Bremse

  1. #11
    Erfahrener Benutzer Robotik Einstein Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    1.974
    Blog-Einträge
    15
    Anzeige

    Hallo Siro,

    das: "sizeof(Timers) / sizeof(TTimeValue)" würde ich aus der For-Schleife raus nehmen und das Ergebnis in eine Variable packen.

    Code:
    int irgendwas = sizeof(Timers) / sizeof(TTimeValue);

    und die Schleife dann so ändern:
    Code:
    for (i=0; i< irgendwas; i++)
    Evtl. funktioniert das ja auch noch mit "const" als Konstante, das weiß ich nicht an der Stelle.

    Es sei denn, der Compiler würde das selbst optimieren. Sonst hättest Du bei jedem Schleifendurchlauf die Berechnung drin, deren Ergebnis sich nie ändert. Mit den verlorenen Taktzyklen kann man was anderes anfangen.

    MfG


  2. #12
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    09.10.2014
    Beiträge
    5.124
    Zitat Zitat von Moppi Beitrag anzeigen
    Es sei denn, der Compiler würde das selbst optimieren. Sonst hättest Du bei jedem Schleifendurchlauf die Berechnung drin, deren Ergebnis sich nie ändert. Mit den verlorenen Taktzyklen kann man was anderes anfangen.
    so doof ist kein moderner C/C++-Compiler
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  3. #13
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Ort
    Berlin
    Beiträge
    1.034
    @Moppi:

    Hatte ich Anfangs auch bedenken, aber wie HaWe schon schreibt, der Compiler setzt da eine Konstante ein.
    Er macht selbst die Vorrausberechnung, das habe mir im Assemblercode vei verschiedenen Compilern jeweils angesehen.
    Grade bei meinen kleinen PICs mit wenig Speicher, bin ich da immer am gucken was der Compiler für Code erzeugt,

    Siro

  4. #14
    Erfahrener Benutzer Robotik Einstein Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    1.974
    Blog-Einträge
    15
    Danke Siro, für die Rückmeldung!

    aber wie HaWe schon schreibt
    Der schreibt ... :
    Zitat Zitat von HaWe Beitrag anzeigen
    so doof ist kein moderner C/C++-Compiler

    MfG

    gekürzt, Manf
    Die Bermerkung ist viel zu weitreichend, wen könnte man denn hier als Vorbild nennen?
    Geändert von Manf (08.04.2020 um 09:40 Uhr)

  5. #15
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    124
    Ich danke euch Allen erst einmal vielmals für die konstruktiven Antworten und Hinweisen.
    Mit diesem Bsp spiele ich derzeit - muss dann in den nächsten Tagen auf meine zukünftig mutiplen Bedürfnisse angepasst werden.
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Status: EwigerAnfaenger |

  6. #16
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    51
    Beiträge
    1.666
    Sag ich doch dauernd...bemüh mal die Suche hier im Forum, ich hatte neulich erst Auszüge eines Codes gepostet, den ich benutze- der basiert auf dem Beispiel, kann aber _etwas_ mehr als nur ein Lichtlein blinken lassen.

    Man muss sich aber darüber im klaren sein, dass diese Herangehensweise auch ihre Grenzen hat.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  7. #17
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    124
    Nebenfrage:

    Gibt es zwischen den beiden folgenden Codes irgend einen sinnvollen Unterschied?

    Ich sehe häufig;
    if (millis() - StartZeit >= Dauer)
    kann aber folgendes leichter/schneller lesen;
    if (millis() >= StartZeit + Dauer)
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Status: EwigerAnfaenger |

  8. #18
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    09.10.2014
    Beiträge
    5.124
    Zitat Zitat von frabe Beitrag anzeigen
    Nebenfrage:

    Gibt es zwischen den beiden folgenden Codes irgend einen sinnvollen Unterschied?

    Ich sehe häufig;

    kann aber folgendes leichter/schneller lesen;
    beides ist gleich gut und gleich schnell, reine Geschmacksache.
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. Servo-Dauerlauf ohne delay();
    Von KoQ im Forum Arduino -Plattform
    Antworten: 11
    Letzter Beitrag: 05.08.2013, 23:17
  2. Loop unterbrechen
    Von bomberman_z im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 02.11.2008, 21:29
  3. Zeiten ohne Delay
    Von Spongebob85 im Forum C - Programmierung (GCC u.a.)
    Antworten: 21
    Letzter Beitrag: 22.10.2007, 00:22
  4. [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
  5. Do Loop
    Von christian87 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 28.01.2005, 11:32

Stichworte

Berechtigungen

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