- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 30

Thema: Bibliothek mit Referenzen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    148
    Zitat Zitat von HaWe Beitrag anzeigen
    1 globale Variable kann immer nur 1 Wert speichern, nicht verschiedene, und dasselbe gilt für jede lokale Variable.
    uiuiui, da hast du mich vollkommen falsch verstanden.

    Zitat Zitat von HaWe Beitrag anzeigen
    kA wie du das mit Referenzen für verschiedene Buttons lösen willst.
    Es geht darum aus einer Funktion mehrere Werte zurück zu geben.

    Code:
    void loop() {
    if (Kontakt01 == 1){...mach was...}
    if (Kontakt02 == 0){...mach was...}
    }
    
    int Kontakt01(int KontPin) {  //Prüfung; gibt 4 Zustand zurück; 0...Entprellt+LOW, 1...Entprellt+HIGH, 2...IN Entprellung, 3...keine Zustandsänderung
      static unsigned long StartZeit = 0;   
      static int KontZustAlt = digitalRead(KontPin);  
      static int EntprellStatus = digitalRead(KontPin); 
      return Entpreller(KontPin, StartZeit, KontZustAlt, EntprellStatus); 
    }
    
    //Kontakt-Entprellung; gibt 4 Zustände zurück; 0...Entprellt+LOW, 1...Entprellt+HIGH, 2...derzeit in Entprellung, 3...keine Zustandsänderung
    int Entpreller(int KontPin, unsigned long &StartZeit, int &KontZustAlt, int &EntprellStatus) {
      int KontZustNeu = 0;
      if((KontZustNeu = digitalRead(KontPin)) == EntprellStatus) {
        return 3; 
      }
    //...usw...
    }
    Hier werden in Kontak01() bei jedem Durchlauf, aktuelle Var-Werte für den Kontakt01 zwischengespeichert.
    Die 3Stk "&Var" werden durch Entpreller() berechnet, dann die neuen Werte wieder in Kontakt01 gespeichert --- bis zum nächsten Durchlauf...
    Somit muss für jeden Eingangs-Kontakt/Taster eine eigene Funktion, als Zwischenspeicher(!), bestehen Kontakt01..0n() --- der einzige Wehrmutstropfen.
    Funktioniert aber sehr gut!


    --2--
    A| Nun möchte ich erst Entpreller() in eine Bib verschieben. Daher meine nervigen Fragen nach &Var (Referenz-Variablen).
    Und ob ich von einer Bib aus auf zB. die global Var zB. "KontPin" zugreifen kann.
    B| Danach bekommt jeder Kontakt0n() eine eigene Bib.
    C| Danach wollte ich mich mit Klassen, Objekten, Methoden beschäftigen. Sozusagen als Erweiterung und Verbesserung einer C-Bib.
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  2. #2
    HaWe
    Gast
    sry, deine Konstruktion verstehe ich nicht, ich würde es ganz anders machen - da muss dann jemand anders 'ran

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    148
    Wie wäre dein Prinzip um meherer Kontakte gleichzeitig auf Zustandsänderung, Entprellung und neuem Zustand (ohne delay) zu überprüfen?

    Hierbei wird bei jedem loop-Durchlauf,
    1. auf Zustandsänderung geprüft; if((KontZustNeu = digitalRead(KontPin)) == EntprellStatus) return 3;
    2. wenn sich der Kontaktzustand ändert, wird das bei jedem loop-Durchlauf neu geprüft
    3. sollte sich der Kontaktzustand innerhalb von 5ms ändern, wird die Startzeit resetet
    4. sollten dann >=5ms keine Zustandänderungen passieren, wird je nach Zustand 0(LOW) oder 1(HIGH) zurück gegeben.
    5. und das für beliebig viele Kontakte und ohne delay()

    PS: Entprellzeit = 5ms ist eine globale Variable und als Beispiel zu verstehen
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

Ä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