- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 69

Thema: Welche Möglichkeiten der Fehlersuche hat man beim Arduino?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    Zitat Zitat von HaWe Beitrag anzeigen
    @fredyxxx, zurück zum

    while(!digitalRead(testpin));
    while( digitalRead(testpin));
    ...: funktioniert das jetzt so?
    Hallo HaWe,

    ja, erstaunlicherweise funktioniert es nur mit Semikolon's so. Mit geschweiften Klammern verhält es sich anders. Ich hatte das für einen Fehler gehalten, weil der Befehl hier http://https://www.arduino.cc/en/Reference/While mit Klammern beschrieben ist.

    Das mit dem digitalRead hatte ich wohl ohne darüber nachzudenken sowieso schon richtig gemacht.

    vG
    fredyxx

  2. #2
    HaWe
    Gast
    jap, in den Klammern steht der Körper:
    while(Bedingung) {Körper}
    der Körper wird solange wiederholt ausgeführt, wie die Bedingung True ist.
    Er soll aber gar nichts öfters ausführen, sondern nur warten, solange die Bedingung wahr ist, also die Taste (noch) NICHT gedrückt wurde.
    Daher brauchen wir keinen Körper:
    ! (digitalRead(13) ) // Taste an dPin13 nicht gedrückt
    Sobald sie gedrückt wurde, soll er printen,
    und dann wieder warten, solange eine neue Bedingung True ist :
    (digitalRead(13) ) // Taste an dPin13 (weiterhin ) gedrückt, (noch) nicht losgelassen
    - ebenfalls ohne irgendwas dabei zu tun.
    Sobald die Taste losgelassen wurde (ButtonUp), macht er dann ganz normal mit den Folgebefehlen weiter.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von HaWe Beitrag anzeigen
    jap, in den Klammern steht der Körper:
    while(Bedingung) {Körper}
    der Körper wird solange wiederholt ausgeführt, wie die Bedingung True ist.
    Er soll aber gar nichts öfters ausführen, sondern nur warten, solange die Bedingung wahr ist, also die Taste (noch) NICHT gedrückt wurde.
    Daher brauchen wir keinen Körper:
    Wenn du schon so lang ausholst, dann bitte richtig:

    nach einem while wird der nächste Befehl ausgeführt, solange die Bedingung wahr ist. Und zwar ein und genau ein Befehl. Wird im Körper, wie du das bezeichnet hast, mehr als ein Befehl gebraucht, fasst man sie durch geschweifte Klammern zu einem Befehl zusammen. Mindestens ein Befehl muß aber dastehen, zur Not ein leerer Befehl, der nur aus dem Semikolon, dem Befehlsende in C, besteht. Ein C NOP gewissermaßen. Gute Praxis ist, selbst wenn es nur einen Befehl ist, ihn in geschweiften Klammern zu schreiben. Zusammen mit passenden Einrückungen sieht man dann viel schneller, was alles zur Schleife gehört.

    Code:
    while ( digitalRead(13) ) {
        ;
     }
    Und natürlich wird etwas öfter ausgefürt, nämlich das Lesen des Portpins. Wenn man das deutlich machen will, sollte man schreiben:
    Code:
    while ( true ) {
          if ( digitalRead(13) == 1 ) {
              break;
          }
    }
    So kapiert jeder sofort, worum es geht, selbst wenn er nach Jahren noch mal auf diesen Code stößt.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  4. #4
    HaWe
    Gast
    ich denke, das war unnötig wie ein Kropf :-/

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von HaWe Beitrag anzeigen
    ich denke, das war unnötig wie ein Kropf :-/
    Wenn Hr. Doktor nicht mehr zu meckern hat, war ja alles richtig

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  6. #6
    Unregistriert
    Gast
    Zitat Zitat von Klebwax Beitrag anzeigen
    nach einem while wird der nächste Befehl ausgeführt, solange die Bedingung wahr ist. Und zwar ein und genau ein Befehl. ...
    Das finde ich jetzt toll und sehr schön zusammengefaßt. Danke.

Ähnliche Themen

  1. 18 PWM Kanäle - Welche Möglichkeiten?
    Von Hardware-Entwickler im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 19.12.2015, 14:16
  2. Antworten: 8
    Letzter Beitrag: 21.10.2014, 09:18
  3. Möglichkeiten der AVR/Arduino PWM?
    Von ichbinsisyphos im Forum Arduino -Plattform
    Antworten: 10
    Letzter Beitrag: 23.02.2013, 09:03
  4. Spannungen mit PC-Computer Messen. Welche Möglichkeiten?
    Von petermetertr im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 14
    Letzter Beitrag: 26.08.2009, 16:36
  5. [ERLEDIGT] 20 mikrovolt-Hirnwellen registrieren-Welche möglichkeiten?
    Von Thomas Wellheim im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 13
    Letzter Beitrag: 18.12.2004, 18:43

Berechtigungen

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

12V Akku bauen