- Labornetzteil AliExpress         
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
    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

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

  3. #3
    HaWe
    Gast
    Nun bekomme ich dauernd Fehlermeldungen, wenn ich aus einer Bib eine Sketch-Funktion aufrufen möchte.
    Geht das gar nicht?
    nein, das geht nicht, denn das .h/.cpp file der Library weiß ja nichts von deinem Sketch, also wie soll eine Library eine Sketch Funktion kennen?
    - anders herum geht es ntl schon.

    Später wollte ich von einer Bib aus eine andere Bib aufrufen usw.
    Ist eine Bib überhaupt dafür gedacht?
    sagen wir so: ja, das geht, wenn man es richtig macht.

    Die Funktionen etc der Library müssen nur sehr allgemein gehalten sein und in sich abgeschlossen sein.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    148
    Zitat Zitat von HaWe Beitrag anzeigen
    nein, das geht nicht, denn das .h/.cpp file der Library weiß ja nichts von deinem Sketch,
    Daher kann die Lib auch nicht auf globale Var. aus dem Sketch zugreigen.
    Anders herum schon? Könnte ich dann eine Lib aus "globalen Variablen" für den Sketch verwalten?

    Zitat Zitat von HaWe Beitrag anzeigen
    Die Funktionen etc der Library müssen nur sehr allgemein gehalten sein und in sich abgeschlossen sein.
    ... nicht sonderlich mächtig...
    Das würde bedeuten, wenn in 2 unterchiedlichen Lib ein und die gleiche LED angesteuert werden soll, müsste der Pin in jedem Lib separat deklariert werden. Oder?
    Ganz schön aufwendig (und Fhelerbehaftet).

    Zitat Zitat von HaWe Beitrag anzeigen
    sagen wir so: ja, das geht, wenn man es richtig macht.
    Wie?
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  5. #5
    HaWe
    Gast
    ich kann dir hier leider kein Tutorial bieten, versuche das Beispiel aus #24 zu verstehen, kopiere es, spiel damit herum und versuche deine Btn-Funktionen entsprechend umzuarbeiten. (Oder versuche meine Btn-Lib zu verstehen )

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    148
    Ich vestehe das meine Fragen nerven - mich nervt das Thema, da kein Fortschritt.
    Hatte gedacht, dass Bibliotheken, Sketch flexiber machen - funktionierende Funktionen für weitere Sketch leichter verwendbar machen.
    ABER, auch ohne Bib klappts mit bestehenden Funktionen - copy/paste ist angesagt.

    Da ich derzeit keine wesentlichen Vorteile sehr, werde ich erst einmal die Bib´s zurück stellen!
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  7. #7
    HaWe
    Gast
    Lib-Funktionen müssen alle wesentlichen Variablen vom aufrufenden Sketch erhalten und sollten daher am besten auch in einer Structure gekapselt sein, wenn mehr als 1 Wert verändert wird - alles andere ist unübersichtlich, verwurschtelt und schlecht zu warten. Deine Funktionen und Variaben sind viel zu sehr ineinander verschachtelt, als dass man sie unproblematisch und sauber in eine Lib auslagern könnte: daher wäre IMO eine komplette Neuprogrammierung deiner btn-Funktionen und -Variablen notwendig, mit völlig gegeneinander abgeschlossenen Typen, Parametern und Scopes.
    Siehe Beisp. in #24.
    Wenn du das sauber trennen kannst, wäre eine solche Lib durchaus eine deutliche Erleichterung und Vereinfachung.
    Geändert von HaWe (06.05.2020 um 20:19 Uhr)

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

12V Akku bauen