-         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 30

Thema: Bibliothek mit Referenzen

  1. #11
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    124
    Anzeige

    Kenne ich - steht leider nichts von &Referenzen.
    Klassen wäre mein nächster Schritt, nachdem Bibliothek sauber läuft.
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Status: EwigerAnfaenger |

  2. #12
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    452
    Blog-Einträge
    3
    Die "const int Entprellzeit;" wäre etwas, was als Argument in den Konstruktor eines Objekts gehört.

  3. #13
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    09.10.2014
    Beiträge
    5.127
    falls es dich interessiert, wie ich es gelöst habe (sicher noch suboptimal):
    https://github.com/dsyleixa/Arduino/...es/ButtonClass

    PS
    ich habe alle Funktionen samt Code in das .h file geschrieben, nicht nur die Prototypen - das ist zwar nicht ganz regeltypisch, aber deutlich einfacher zu warten
    Geändert von HaWe (29.04.2020 um 21:00 Uhr)
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  4. #14
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    124
    Zitat Zitat von Sisor Beitrag anzeigen
    Die "const int Entprellzeit;" wäre etwas, was als Argument in den Konstruktor eines Objekts gehört.
    DANKE, genau hierrüber war ich mir unsicher; welche Var gehören in den Global-Bereich, in die Funktion als static und in die Objekte?

    Ist es selbstverständlich, dass bei der Verwendung einer Bibliothek erst einmal dessen Parameter/const Variablen angepasst werden?
    Oder muss ein Objekt so universell sein, dass das Objekt nicht angefasst/angepasst wird?
    Bsp: LEDs werden angesteuert, steht sie Output-Zuordnung im Sketch oder im Objekt?

    - - - Aktualisiert - - -

    Zitat Zitat von HaWe Beitrag anzeigen
    falls es dich interessiert, wie ich es gelöst habe (sicher noch suboptimal):
    https://github.com/dsyleixa/Arduino/...es/ButtonClass
    Moin HaWe - ist mir derzeit noch zu kompliziert...
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Status: EwigerAnfaenger |

  5. #15
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    09.10.2014
    Beiträge
    5.127
    welche Var gehören in den Global-Bereich, in die Funktion als static und in die Objekte?
    "Objekte" sind Instanzen von "Klassen", und die haben eine vorgeschriebene Struktur in C++,
    "normale" prozedurale Funktionen kennen oder haben keine Objekte, C kennt überhaupt keine Objekte.

    Betr. Klassen und davon instantiierte Objekte:
    Alles, was an die Klassen und ihre dann instantiierte Objekte an Werten übergeben wird und was sie als (veränderte, berechnete) Werte zurückgeben, ist "public",
    alles was nur intern für Umrechnungen benötigt wird, ohne dass von außen darauf zugegriffen werden soll, ist "private".
    "static" in Klassen sind Werte, die auch zwischen den Objekt-Instanzen ausgetauscht werden.

    ich bin mir daher nicht sicher, ob du wirklich überhaupt von "Objekten" sprichst, oder ob du etwas ganz anderes meinst.
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  6. #16
    Erfahrener Benutzer Robotik Einstein Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    1.983
    Blog-Einträge
    15
    Zitat Zitat von frabe Beitrag anzeigen
    Kenne ich - steht leider nichts von &Referenzen.
    Klassen wäre mein nächster Schritt, nachdem Bibliothek sauber läuft.
    Du brauchst für den Minicode keine "&Referenzen" (dieser Ausdruck existiert in der Form noch nicht einmal). Du benötigst hier gar keine Referenzen oder gar explizite Zeiger. Wenn Du der Meinung bist, hast Du eine Menge falsch gemacht.

    MfG

    - - - Aktualisiert - - -

    Bei einem Objekt werden die Variablen in bestimmten Abschnitten deklariert.
    Somit sind sie methodenübergreifend erreichbar.
    Wenn Variablen in einer Methode deklariert und definiert werden, dann sollte
    man dies nur tun, wenn die Variable nur innerhalb dieser Methode gebraucht wird.


    Variablen, die ausschließlich nur in einer einzigen Methode benötigt werden:
    Deklaration + Definition innerhalb dieser Methode.


    Nicht öffentliche Variablen, die methodenübergreifend benötigt werden,
    aber nicht außerhalb des Objektes:
    Deklaration, innerhalb "class ...", wie ich schon am Beispiel zeigte, unter "privat"


    Öffentliche Variablen, auf die auch außerhalb des Objektes zugegriffen werden soll:
    Deklaration, innerhalb "class ...", wie ich schon am Beispiel zeigte, unter "public"


    Zum schlechten Programmierstil gehört z.B.:
    Variablen, die methodenübergreifend benötigt werden,
    in einer Methode deklarieren und mit Referenz oder anderen Tricks an andere Methoden übergeben.


    Nicht alles, was irgendwie möglich ist, ist auch sinnvoll, geschweige denn notwendig.
    Was bestimmte Sonderfälle nicht einschließt. Davon kann hier aber keine Rede sein.

  7. #17
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    124
    Hallo Leute.
    Meine Entprellung() Funktion klappt prima innerhalb eines Sketch.
    Hier benutze ich Referenzen mit einem Zeiger auf eine Var. (Bsp: int &KontZustandAlt).
    Mein Vorteil ist die gleichzeitige Funktionsrückgabe mehrerer Parameter. Unsauber?
    Klappt prima!

    Schritt2 ist die Auslagerung der Funktion Entprellung() in eine Bibliothek. Hier komme ich scheinbar mit den Referenzen nicht weiter...
    Daher meine Frage: kann man überhaupt mit Referenzen zw. Sketch und Bib. arbeiten?

    Daher meine Zusatzfragen: mit static Var. und const Var. Auf welche Var. innerhalb des Sketch kann eine Bib. zu greifen?

    Schritt3 wäre dann die Umwandlung von C-Bib. in eine C++-Standardbibliothek (habe ich fälschlich als Objekt oder Klasse bezeichnet).
    Hier sehe ich mich aber noch lange nicht.
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Status: EwigerAnfaenger |

  8. #18
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    09.10.2014
    Beiträge
    5.127
    Zitat Zitat von frabe Beitrag anzeigen
    - - - Aktualisiert - - -
    Moin HaWe - ist mir derzeit noch zu kompliziert...
    war auch vorwiegend zum einfach-Installieren und -Benutzen gedacht.
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  9. #19
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    124
    Zitat Zitat von HaWe Beitrag anzeigen
    war auch vorwiegend zum einfach-Installieren und -Benutzen gedacht.
    Danke! Möchte aber erst einmal meinen eigenen Weg finden.

    Zum Thema Bibliotheken habe ich nur sehr oberflächliche Infos im Netz gefunden.
    Veraltete, unpraktische Technik?

    (Den Klassen widme ich mich, sobald ich Bib und dessen Var verstanden habe - ist vermutlich der praxisnaheste Weg)

    Mich interessier primär, wie innerhalb einer Bib mit Variablen aus dem Sketch umgegangen wird.
    Kann die Bib überhaupt auf globale Var aus dem Sketch zugreifen?
    Oder auf static Var aus einer Funktion (innerhalb des Sketch), aus der die Bib aufgerufen wird?
    Somit käm ich mit die Frage nach "Variable als Referenz" (int &Zustand) innerhalb einer Bib schon mal weiter.

    derzeit Entprellung.h, Entprellung.cpp
    HTML-Code:
    int Entprellung(int KontaktPin, unsigned long &StartZeit, int &KontaktZustandAlt, int &EntprellStatus);
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Status: EwigerAnfaenger |

  10. #20
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    09.10.2014
    Beiträge
    5.127
    1 globale Variable kann immer nur 1 Wert speichern, nicht verschiedene, und dasselbe gilt für jede lokale Variable.
    kA wie du das mit Referenzen für verschiedene Buttons lösen willst.
    Der einzige Weg geht mE über Strukturtypen, wobei du dann im Sketch davon je 1 als neue Strukturvariable pro Button im Sketch neu einzeln instanziierst.

    Code:
     // das gehört in die Lib
    typedef struct{
        int var1;
        int var2;
        int var3;
    }
    myBtnStruct;
    
    // das gehört in den Sketch
    myBtnStruct btn1, btn2, btn3;
    Ein Objekt ist prinzipiell nichts anderes, nur dass noch zusätzlich Funktionen drin gekapselt sind.
    Ich halte daher deinen bisherigen Ansatz für mindestens suboptimal wenn nicht für sogar für nicht zielführend.
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Ähnliche Themen

  1. Arduino Bibliothek soll auf andere Bibliothek zugreifen
    Von RoboterSindCool im Forum Arduino -Plattform
    Antworten: 6
    Letzter Beitrag: 11.12.2016, 15:50
  2. C-Bibliothek für AVRs
    Von drew im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 23.04.2008, 17:52
  3. Referenzen, Parameter für TWI-Funktion
    Von Minifriese im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 11.01.2008, 20:54
  4. Referenzen
    Von JensSchyma im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 12.05.2007, 17:55
  5. DOS - Bibliothek
    Von hacker im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 14.04.2006, 01:54

Stichworte

Berechtigungen

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