- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 9 von 9

Thema: Sensor Wert mehrfach abfragen, erst dann...

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.02.2006
    Beiträge
    221
    danke das muss ich mir näher zu gemüte führen.

    Muss ich da unbedingt so seltsam definieren:
    volatile static int counter=0;

    oder geht nicht auch einfach mit
    int...?

  2. #2
    HaWe
    Gast
    Zitat Zitat von xxrider Beitrag anzeigen
    danke das muss ich mir näher zu gemüte führen.

    Muss ich da unbedingt so seltsam definieren:
    volatile static int counter=0;

    oder geht nicht auch einfach mit
    int...?
    kurze Antwort: probier's aus!
    lange Antwort:
    ich bin bei Arduino mit seinen verschiedenen Compiler-settings für verschiedene Zielplattformen (AVR, SAM, SAMD, ESP8266) vorsichtig geworden.
    Die loop() Funktion ist mir da besonders suspekt.
    volatile: man weiß nie, was der Code-optimizer rausschmeißt, für welche Zielplattform auch immer, wenn mit den Werten nicht groß was passiert. Ich ging hier im Testcode auf Nummer Sicher, damit es bei dir auch wirklich sicher funktioniert, darauf verzichten kann man nach Test immer noch, aber dieser Punkt ist wschl am unkritischsten.
    static: es ist eine lokale Funktion mit einer lokalen Variablen, die innerhalb der Funktion in verschiedenen Durchläufen hochgezählt oder wieder resettet wird. Gerade mit solchen Werten habe ich bereits schlechte Erfahrungen in loop() gemacht, wenn sie nicht als static deklariert waren, insb. Arduino Due (SAM) mit Scheduler und ESP8266.

    Aber wie gesagt, muss vlt alles nicht unbedingt sein, probier's einfach aus.

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.02.2006
    Beiträge
    221
    Das dumme ist - ausprobieren geht grad nicht weil ich mein Board durch Falschpolung heute geschrottet hab! Ein Neues ist aber unterwegs...

    Noch eine Frage:
    die Zuweisung von 0 an den counter
    (volatile static int counter=0)

    befindet sich doch innerhalb der schleife. Also dürfte der Wert doch niemals >1 werden weil er bei jedem Durchgang wieder auf 0 gesetzt wird,
    oder seh ich da was falsch???

  4. #4
    HaWe
    Gast
    nein, eben nicht, weil er static ist und in loop nur beim ersten Durchlauf zu Beginn initialisiert wird.
    Ist auch so eine auf den ersten Blick seltsame und nicht ganz transparente loop-Eigenheit, eben Arduinoisch, nicht echt C++, auch deshalb gehe ich hier immer auf Nummer Sicher.
    Wie es in C++ umgeformt hieße, führt hier aber jetzt zu weit.

Ähnliche Themen

  1. Hackaday Prize 2015: Erst die Welt retten und dann ins Weltall
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 10.03.2015, 08:20
  2. Pin's abfragen und als Hex Wert ausgeben
    Von elkokiller im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 03.12.2006, 13:14
  3. Ausgang beim Atmaga8 springt erst auf -1,9V und dann auf 5V
    Von Micha G. im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 27.11.2006, 17:20
  4. Erst bohren, dann belichten?
    Von mrroboto im Forum Konstruktion/CAD/3D-Druck/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 3
    Letzter Beitrag: 26.11.2006, 13:13
  5. Bedingung abfragen "von bis dann ...."
    Von sachse im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 01.10.2005, 16:29

Berechtigungen

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

12V Akku bauen