- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 20

Thema: Sketch - fehlermeldung "expected initializer before 'switch'"

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    04.05.2015
    Beiträge
    41
    Ich habe mir den Bewegungsstatus in void Loop() ausgeben lassen, Ergebnis. Die Bewegung wird erkannt, es wird mir eine 1 Ausgegeben. Wenn ich den Bewegungsstatus auf 0 setze, geht er weiterhin in den Else-Zweig. Bedeutet für mich, die Bewegung wird erkannt, aber der Status wird nicht übergeben an die Bedingung in der Funktion. Sie wird quasi "übergangen" und er geht sofort in den Else-Zweig.

    Ich habe den Bewegungssensor mittlerweile auch von Pin 13 entfernt und bei Pin 10 angeschlossen um zu vermeiden, dass es evtl. mit der LED an Pin 13 kollidiert. Übrigens, zufälligerweise habe ich gesehen, dass die LED an Pin 13 auf dem Board aufleuchtet, wenn ich die Hand vor den Sensor halte.

    Warum also wird der Status nicht an die Funktion bzw. die If-Anweisung in der Funktion übergeben?

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    Versuhe mal ein Volatile vor "int bewegung = 10" // 13.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    04.05.2015
    Beiträge
    41
    Nein. Funktioniert auch nicht. Ich habe bei der IF-Anweisung mittlerweile auch mal eine ==1 eingetragen, geht auch nicht. Ich kann es nicht nachvollziehen, alle anderen Daten werden berechnet und ausgegeben. Kann es ein zeitliches Problem sein? Die Verzögerung von 10 Sekunden dürfte nicht stören, denn die betrifft ja nur die Dauer des Blinkens und die Dauer der Anzeige.

    - - - Aktualisiert - - -

    Ich habe den Fehler gefunden, weiß nur nicht wie ich ihn ausbessern kann. Das Problem, ich drücke die erste Taste, in dem Moment wird die Bedingung des Bewegunsstatus überprüft. Sie wird aber nicht ohne Pause überprüft. Sondern immer nur in dem Moment, wo die Taste 1 gedrückt wird.

    Wie kann ich also eine fortlaufende Prüfung einbauen?

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    16.02.2014
    Beiträge
    80
    Ich kann Dir da nicht im Detail weiterhelfen, aber das klingt mir doch nach einem typischen Kandidat für Interruptverarbeitung. In dem Moment, wo die erste Tastenbetätigung erfolgt muß diese den Interrupt auslösen und der Rest dann in der Interruptroutine weiterverarbeitet werden...

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    04.05.2015
    Beiträge
    41
    Okay, mit Interrupts kenne ich mich nicht aus, da ich mich erst langsam an das Thema ran taste. Muss ich jetzt erstmal anlesen.

    Danke für die Info.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    16.02.2014
    Beiträge
    80
    Interruptprogrammierung ist quasi die Königsdisziplin. Du solltest erstmal anfangen kleine Brötchen zu backen, d.h. den Status eines simplen Schalters ohne weitere Funktion abfragen. Dazu benötigst Du INT4 (Pin Change Interrupt Request 0) falls der Schalter an Pin D8..D13 hängt. Dieser INT hat hohe Priorität - Du mußt also nicht befürchten daß Dir die Arduino-IDE mit ihren Timern dazwischenfunkt - sehr pflegeleicht!
    Wenn das funktioniert baust Du anstelle des Schalters Deine eigentliche Hardware in den Code ein.

    Um das Ganze zu verstehen empfehle ich die Website von Nick Gammon. Ich selbst habe nur ein einziges Arduino-Projekt mit einem einzigen (Timer-)Interrupt realisiert (bin also wirklich nicht DER Programmier-Freak...), aber er hat mir immerhin dies ermöglicht - und das recht schnell. Im Speziellen interessant für Dich ist seine Abhandlung über Interrupts. Die versucht zwar allgemeingültig zu erklären, aber glücklicherweise ist seine Testplattform der Uno.

    Bevor Du anfängst solltest Du erstmal den gesamten Thread durchlesen und *halbwegs* verstehen. Die Abschnitte über Timer kannst Du guten Gewissens auslassen. Das allererste Code-Beispiel ("Example of interrupts") kommt Deiner ersten Aufgabe schon ziemlich nahe.
    Dann erst versuchen selbst was zu basteln.

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    04.05.2015
    Beiträge
    41
    Danke. Ich werde mir das durchlesen.

    Irgendwie ist es gerade so, dass ich mein gebautes "Gerät" nämlich gerade nicht auseinander nehmen möchte, bevor es nicht wirklich so funktioniert, wie ich es mir vorstelle . Dann werde ich es aufzeichnen und erst dann mit den anderen Sachen weitermachen, die ich noch offen habe.

Ähnliche Themen

  1. Antworten: 13
    Letzter Beitrag: 02.12.2014, 09:13
  2. Error: expected identifier before "." token
    Von Artemis_Simetra im Forum Arduino -Plattform
    Antworten: 13
    Letzter Beitrag: 18.01.2014, 20:15
  3. Antworten: 3
    Letzter Beitrag: 06.01.2012, 15:30
  4. "initializer element is not constant"
    Von Mauro im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 21.05.2010, 20:11
  5. Antworten: 13
    Letzter Beitrag: 27.01.2009, 12:50

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress