Zitat von
HaWe
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 von
HaWe
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.
Lesezeichen