- fchao-Sinus-Wechselrichter AliExpress         
Seite 6 von 7 ErsteErste ... 4567 LetzteLetzte
Ergebnis 51 bis 60 von 69

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

  1. #51
    HaWe
    Gast
    Anzeige

    Praxistest und DIY Projekte
    fang bitte nicht wieder mit dem goto-Sch**** an, das Thema ist durch, und daran lag es auch nicht.
    Das mit dem testpin oder !testpin war allerdigs tatsächlich nicht richtig , es musste heißen
    while(!digitalRead(testpin));
    while( digitalRead(testpin));
    https://www.arduino.cc/en/Reference/DigitalRead

    sorry for that!

  2. #52
    Unregistriert
    Gast
    Zitat Zitat von HaWe Beitrag anzeigen
    fang bitte nicht wieder mit dem goto-Sch**** an, das Thema ist durch,
    Richtig, goto-Sch**** und das Thema ist noch lange nicht durch, solange es verschiedene Ansichten darüber gibt.

  3. #53
    HaWe
    Gast
    unregistrierte Trolle sollte man hier wirklich bannen bzw. gar nicht erst posten lassen. Sie vergiften nur das Diskussions-Klima und schaden letztendlich auch sehr der Reputation des Forums.

  4. #54
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    56
    Beiträge
    2.814
    Ich sage es mal so,

    Es wurde nach Hilfe gefragt ohen das Code gepostet wurde.
    Als dann ein Code sniplet gepostet wurde, habe ich für mich so viele GOTOs gesehen, das ich keine Lust mehr verspührte mir das anzutun.
    Rein auf verdacht, vermute ich mal das es einigen Leuten die schon etwass Programmiererfahrung haben, ähnlich geht.
    Da die Sprache besser lesbaren Code erlaubt.
    Es liegt halt an dem fragenden, entweder sich damit abzufinden das man ihm sagt "Räum deinen Code erst mal auf und komm dann wieder wenn sich das Problem dabei nicht schon von selbst gelöst hat".
    Oder zu hoffen das sich jemand seiner erbarmt.
    Zu erwarten ist, aus meinen Erfahrungswerten ,das es wieder zu Fragen kommt und der Code bis dahin nicht besser aussehen wird.
    Womit sich die Fehlerträchtigkeit dieses Programmierstils dann von selbst beweisen wird.
    Ich teste Sachen oft auch erst mal mit quick and dirty Code.
    Sobald es dann aber um die Integration in größere Sachen geht, macht es auch Sinn darüber nachzudenken ob der bisher eingeschlagene Weg der bessere oder der schlechtere ist.
    GOTOs funktionieren, wenn man sie beherscht und den Überblick behällt.
    Aber nur dann und nur solange man sich intensiv mit dem Code befasst.
    Wenn das mit den GOTOs (und ein paar anderen Assembler Befehlen) so einfach wäre, wären Hochsprachen nie entstanden und alle würdne assembler nehmen.
    Aber man wollte Abstraktion und Portierbarkeit sowie einfacher zu lesenden Code, Denn das können mehr Menschen verstehen wie Assembler.
    Ein GOTO ist nun mal nichts anderes wie eine andere Schreibweise für ein JMP.
    ALso eigentlich Assembler.
    Aber es ist halt jedem selbst überlassen wie er Programmiert.
    Dafür muß man dann aber auch hinnehmen das es immer wieder zur selben Diskussion kommt, wenn man solchen Code vorlegt.

  5. #55
    HaWe
    Gast
    Aber es ist halt jedem selbst überlassen wie er Programmiert.
    Dafür muß man dann aber auch hinnehmen das es immer wieder zur selben Diskussion kommt, wenn man solchen Code vorlegt.
    ist ja ok, wenn man nicht iwas immer nur pauschal verteufelt. Selbst erfahrene Programmierer verwenden u.U. goto, und in diesem jetzt folgenden sehr speziellen Fall sah ich auch keine andere Möglichkeit, als es meinem Vorbild bei der Arduino- und Raspi-Portierung gleich zu tun: http://www.mindstormsforum.de/viewto...p=66103#p66103
    http://www.mindstormsforum.de/viewto...p=66103#p67841
    ceterum censeo, auch switch/case ist nichts anderes als ein verkapptes goto.

    @fredyxxx, zurück zum
    while(!digitalRead(testpin));
    while( digitalRead(testpin));
    https://www.arduino.cc/en/Reference/DigitalRead
    ...: funktioniert das jetzt so?

  6. #56
    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

  7. #57
    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.

  8. #58
    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 !

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

  10. #60
    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 !

Seite 6 von 7 ErsteErste ... 4567 LetzteLetzte

Ähnliche Themen

  1. 18 PWM Kanäle - Welche Möglichkeiten?
    Von Hardware-Entwickler im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 19.12.2015, 15:16
  2. Antworten: 8
    Letzter Beitrag: 21.10.2014, 10:18
  3. Möglichkeiten der AVR/Arduino PWM?
    Von ichbinsisyphos im Forum Arduino -Plattform
    Antworten: 10
    Letzter Beitrag: 23.02.2013, 10: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, 17: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, 19:43

Berechtigungen

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

12V Akku bauen