Hej,
hoffe ihr könnt mir mal auf die Sprünge helfen.
Ich möchte ein Array mit Variablennamen an eine Funktion übergeben.
Das funktioniert nicht. In der seriellen Ausgabe kommen für a nur 0 en.
Denke da stimmt irgend was in der Syntax nicht, komme aber nicht dahinter.
unsigned long B1off = 11025301; //101010000011101110010101
unsigned long B2off = 10869189; //101001011101100111000101
unsigned long C1on = 11452798; //101011101100000101111110
unsigned long C2on = 11146942; //101010100001011010111110
unsigned long C1off = 10680158; //101000101111011101011110
unsigned long C2off = 10899998; //101001100101001000011110
unsigned long D1on = 11025303; //101010000011101110010111
unsigned long D2on = 11236423; //101010110111010001000111
unsigned long D1off = 11084007; //101010010010000011100111
unsigned long D2off = 10700087; //101000110100010100110111
void setup() {
Serial.begin(9600);
}
void loop() {
unsigned long DSchalt[8] = {A1off,A2off,B1off,B2off,C1off,C2off,D1off,D2off};
Std_Schalt(DSchalt); // Steckdosen ein senden
}
//Steckdosen On/Off senden
void Std_Schalt(unsigned long (DSchalt[])) {
byte a = sizeof(DSchalt) / sizeof(DSchalt[0]);
Serial.println(a);
for (byte i = 0; i < a; i++) {
Serial.println(DSchalt[i]);
}
}
Hier wo ich nicht an die Funktion übergebe, da gehts.
unsigned long B1off = 11025301; //101010000011101110010101
unsigned long B2off = 10869189; //101001011101100111000101
unsigned long C1on = 11452798; //101011101100000101111110
unsigned long C2on = 11146942; //101010100001011010111110
unsigned long C1off = 10680158; //101000101111011101011110
unsigned long C2off = 10899998; //101001100101001000011110
unsigned long D1on = 11025303; //101010000011101110010111
unsigned long D2on = 11236423; //101010110111010001000111
unsigned long D1off = 11084007; //101010010010000011100111
unsigned long D2off = 10700087; //101000110100010100110111
void setup() {
Serial.begin(9600);
}
void loop() {
unsigned long DSchalt[8] = {A1off,A2off,B1off,B2off,C1off,C2off,D1off,D2off};
byte a = sizeof(DSchalt) / sizeof(DSchalt[0]);
Serial.println(a);
for (byte i = 0; i < a; i++) {
Serial.println(DSchalt[i]);
}
}
Ausgabe
8
10591628
10792492
11025301
10869189
10680158
10899998
11084007
10700087
usw.