- 3D-Druck Einstieg und Tipps         
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
    Unregistriert
    Gast
    "goto" wurde meiner Meinung nach nur in höhere Programmiersprachen aufgenommen um den Maschinensprachlern den Aufstieg zu erleichtern und wurde später nicht entfernt, um am Vorkommen im Sourcecode auf den erstn Blick den Anfängerauthor vom Fortgeschrittenen unterscheiden zu können

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Manchmal gibt es nichts anderes (außer evtl. der Zerlegung in mehrere Funktionen)
    Code:
    for( ... ganzviel ...) {
      for( ... nochmehr ...) {
        for( ... immer mehr ...) {
          if (bedingung) {
            goto nix_wie_weg;
          }
        }
      }
    }
    
    nix_wie_weg:
    und wie schon oben zitiert, viele Parsergeneratoren erzeugen Code mit vielen gotos.

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    57
    Beiträge
    2.814
    Zitat Zitat von Unregistriert Beitrag anzeigen
    "goto" wurde meiner Meinung nach nur in höhere Programmiersprachen aufgenommen um den Maschinensprachlern den Aufstieg zu erleichtern und wurde später nicht entfernt, um am Vorkommen im Sourcecode auf den erstn Blick den Anfängerauthor vom Fortgeschrittenen unterscheiden zu können

    GOTO wurde nicht in Hochsprachen "aufgenommen".
    In den ersten nicht Assembler Sprachen war GOTO und GOSUB die ersten und auch einzigen Verzweigungssmöglichkeiten in den Sprachen. Da wurde einfach eine eins zu eins Abbildung auf die verschiedenen JMP und BR Befehle vorgenommen.
    Erst mit ALGOL wurde WHILE, FOR, IF, ELSE für Verzweigungen eingeführt.
    GOTO funktioniert, denn beim Kompilieren werden alle modernen Konstrukte auf JMP und BR (bzw. ihren OPCode) zurückgeführt.
    Die modernen Konstrukte halten einem halt die Arbeit vom Halse selbst den Überblick zu behalten und vor allem fördert es die Verständlichkeit und Lesbarkeit des Quellcodes.

    Ich schreibe auch heute noch seitenlangen Code mit GOTO wenn es in der jeweiligen Sprache nichts anderes gibt. Allerdings bin ich es jetzt auch seit 34 Jahren so gewohnt.
    Dafür sitzte ich aber auch vor Quellcode den ich vor X Jahren selbst geschrieben habe und brauche meine Zeit um zu verstehen was ich damals da gemacht habe und warum.

    Ein Anfänger sollte sich halt überlegen ob er nicht gleich lernt zeitgemäß zu programmieren und sich zu verbessern oder Code zu produzieren der bei jeder Änderung fehleranfällig ist.
    Der Arduino Compiler sollte schon mit GOTOs klar kommen. Aber optimieren wird er den Code wohl nicht großartig.

    Es käme mal auf einen Versuch an die selbe Aufgabe einmal mit GOTOs und einmal ohne zu programmieren und dann zum einen festzustellen wie groß die beiden Compilate werden und welche Zykluszeiten sie dann bei der Ausführung haben.

    1993 habe ich das mal für ein IBM S360 System mit Assembler, COBOL und APL2 gemacht. War interessant.
    Geändert von i_make_it (17.09.2016 um 12:44 Uhr)

  4. #4
    HaWe
    Gast
    goto ist nicht mehr und nicht weniger zeitgemäß als switch/case oder if/else, und auch eine Zeitreise durch die Historie seit Adam und Eva in der Geschichte der Computer führt hier nicht wirklich weiter (wir reden schließlich von C und C++ jetzt und hier im Allgemeinen und bei Arduino im Besonderen, und nicht von Algol oder Cobol oder Fortran von anno einundleipzig). Die Verwendung ist sowohl reine Geschmackssache als auch abhängig von den individuellen Anforderungen im Programm, um unnötig komplizierte if/else/switch/case Verschachtelungen zu umgehen, und jedem Programmierer ist es selbstverständlich erlaubt, alle Befehle zu verwenden, die die Programmiersprache hergibt. Alles andere ist unsinniges und unzulässig verallgemeinerndes Geschwätz und eine ziemlich arrogante Bevormundung, die allesamt zu nichts führen, und wenn man hier auch hundert mal etwas anderes behauptet, wird es dadurch nicht richtiger.

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    Es ist mir sowieso ein Rätsel, weshalb die Frage eines Hobbyprogrammierers zu solchen Grundsatzdikussionen führt. Das erlebe ich nun schon zum zweiten Mal und kann doch wohl nicht Sinn des Forums an dieser Stelle sein.

    Außerdem schreckt es den Leser ab, weiter zu lesen, der sich vielleicht nur für die Ursache des Fehlers interessiert.

    vF

    fredyxx

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Zitat Zitat von fredyxx Beitrag anzeigen
    Es ist mir sowieso ein Rätsel, weshalb die Frage eines Hobbyprogrammierers zu solchen Grundsatzdikussionen führt. Das erlebe ich nun schon zum zweiten Mal und kann doch wohl nicht Sinn des Forums an dieser Stelle sein.

    Außerdem schreckt es den Leser ab, weiter zu lesen, der sich vielleicht nur für die Ursache des Fehlers interessiert.
    Ja, das ist unschön für den Ratsuchenden.

    Aber da kann man nichts machen. Soziales Internet funktioniert heute nun mal "postfaktisch". Es gibt nur die Wahrheit der am meisten geäußerten Behauptung.
    (HaWe wird gleich zustimmen in dem er widerspricht.)

    Aber so ein Thread entwickelt sich natürlich aus der Frage und da bist du nicht ganz unschuldig. Du fragst
    Ich Suche aber nach einer Möglichkeit, durch einen Interrrupt, der auf eine Veränderung einer Variablen reagiert und die Position im Programm ausgibt, die genaue Stelle im Programm zu finden.
    Das führt natürlich in Richtung Debugger. Also antworten erfahrene Leute in dieser Richtung. Erfahrene Leute stören sich natürlich am goto, weil sie damit schon genug Ärger hatten.

    Damit werden ihre Antworten aber automatisch falsch. Weil sie auf Erfahrung basieren und damit nicht die Meinung anderer repräsentieren. Durch die Frage geleitet hat man ja auch kaum die Möglichkeit Zeit auf einfache Dinge wie LED und Taster hinzuweisen. Die gehören dann zur Argumention der wahren Wissenden.

  7. #7
    HaWe
    Gast
    keine Einwände, Euer Ehren.

Ä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
  •  

Solar Speicher und Akkus Tests