- 12V Akku mit 280 Ah bauen         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 30

Thema: Bibliothek mit Referenzen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    Zitat Zitat von frabe Beitrag anzeigen
    Danke HaWe
    Notpad++ ist toll!

    libraries/Entprellung/Entprellung.h und
    libraries/Entprellung/Entprellung.cpp habe ich - läuft dennoch nicht.

    Gibt es auch eine relative Ordnerzuordnungsmöglichkeit die ich zB. in
    #include "\xxx\yyyy\Entprellung.h"
    wenn du es so machst, wie ich schrieb, funktioniert es, das mache ich auch ständig so.
    Es müssen dann ntl alle lib files hinein, mit dem korrekten gegenseitigen #include für .h und .cpp

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    148
    Zitat Zitat von HaWe Beitrag anzeigen
    wenn du es so machst, wie ich schrieb, funktioniert es, das mache ich auch ständig so.
    Es müssen dann ntl alle lib files hinein, mit dem korrekten gegenseitigen #include für .h und .cpp
    Sehe ich das richtig, würde der Sketch-Ordner dann so aussehen?

    ...\xxx\
    sonstwas.ino
    Entprellung.h
    Entprellung.cpp
    noch_mal_bib.h
    noch_mal_bib.cpp
    usw.h
    usw.cpp
    etc.h
    etc.cpp
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  3. #3
    HaWe
    Gast
    ja, grundsätzlich richtig!

    ------v
    ..\sonstwas\

    sonstwas.ino
    Entprellung.h
    Entprellung.cpp
    noch_mal_bib.h
    noch_mal_bib.cpp
    usw.h
    usw.cpp
    etc.h
    etc.cpp

    ist aber umständlich, wenn du dein ino mal irgendwann unter einem neuen Namen speicherst.
    guck dir mal in einer "professionellen" lib an, wie .h und .cpp sich gegenseitig #includen, inkl #ifdef oder #pragma once.
    wenn es dann erstmal läuft, verrate ich dir noch nen zusätzlichen Trick - das verwirrrt aber momentan noch...

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    148
    ...da sind wir wieder bei meinem Urproblem -> der Sketch lässt sich immer noch nicht comp.
    "Fehler beim Kompilieren für das Board Teensy 3.2 / 3.1."

    Hat das mit den Referenzen "&" in Entprellung.h, Entprellung.cpp zu tun?
    HTML-Code:
     int Entprellung(int KontaktPin, unsigned long &StartZeit, int &KontaktZustandAlt, int &EntprellStatus);
    - - - Aktualisiert - - -

    PS:
    Es wird noch komplizierter für mich;
    Habe im x.ino eine "const int Entprellzeit;", die in y.cpp verwendet werden soll.
    Hier meckert der Compiler aber...
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Vielleicht kannst du hieraus Nutzen ziehen:
    Tutorial-Erstellen-einer-Arduino-Bibliothek

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    148
    Kenne ich - steht leider nichts von &Referenzen.
    Klassen wäre mein nächster Schritt, nachdem Bibliothek sauber läuft.
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    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.

  8. #8
    HaWe
    Gast
    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.

  9. #9
    HaWe
    Gast
    ich würde alle Einzel-Variablen in einen struct type packen,
    dann mehrere Variablen von dem struct type davon im aktuellen Sketch erzeugen,
    und dann eine beliebige dieser struct-Variablen an eine spezielle Funktion aus der Lib by reference übergeben, die die Einzelwerte ändert,
    zB so

    Code:
    #include "structlib.h"
    
    // das folgende steht in der structlib.h
    /*
    
    #pragma once 
    
    
    typedef struct {  // struct type
       int var1=0;
       int var2=0;
       int var3=0;
    }   myBtnStruct;
    
    void modifyStruct(myBtnStruct & Btn) { 
    // erhält eine Variable vom struct type by reference und gibt deren Werte geändert zurück
       Btn.var1=1;
       Btn.var2=2;
       Btn.var3=3;
    }
    
    */
    
    void setup() {
       Serial.begin(115200);
       delay(1000);
       Serial.println();
       Serial.println("Serial() started");
    
       myBtnStruct btn1, btn2, btn3;  // erzeuge mehrere Variablen vom struct type
    
       // vor Funktionsaufruf
       Serial.println();
       Serial.println(btn1.var1);
       Serial.println(btn1.var2);
       Serial.println(btn1.var3);
    
       Serial.println();
    
      // nach Funktionsaufruf
    
       modifyStruct(btn1);
       Serial.println();
       Serial.println(btn1.var1);
       Serial.println(btn1.var2);
       Serial.println(btn1.var3);
    
       Serial.println();
    
    }
    
    
    void loop() {
    }
    Geändert von HaWe (06.05.2020 um 17:42 Uhr) Grund: vereinfacht

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    148
    OhMann - irgendwie komme ich nicht weiter mit dem Verständniss um Bib.

    Um den Sketch klein zu halten, möchte erste einmal alle Funktionen aus einem Sketch in jeweilige Bib verteilen.
    Nun bekomme ich dauernd Fehlermeldungen, wenn ich aus einer Bib eine Sketch-Funktion aufrufen möchte.
    Geht das gar nicht?

    Später wollte ich von einer Bib aus eine andere Bib aufrufen usw.
    Ist eine Bib überhaupt dafür gedacht?

    Wie bereits geschrieben, steht im Netz leider nur sehr oberflächliches zu Bibliothken.
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

Seite 1 von 2 12 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
  •  

Labornetzteil AliExpress