Hi Leute,
ich möchte mehrere Schalter über die OneButton Library erzeugen die dann bestimmte Gruppen von LEDs schalten. Ich bin programmiertechnisch aber anscheinend zu blöd um das in einer Schleife zu machen (und ich kann es auch wirklich nicht richtig). Mein Code braucht jetzt schon knapp 50% vom Ram meines MEGA und dabei hab ich gerade erst angefangen zu schreiben.
Hier der Teil von meinem Code der die Buttons erzeugt:
OneButton btn0(btnId[0],false,false);
OneButton btn1(btnId[1],false,false);
OneButton btn2(btnId[2],false,false);
OneButton ...
void sc0() {SingleClick (0);}
void sc1() {SingleClick (1);}
void sc2() {SingleClick (2);}
void sc3() ...
void dc0() {DoubleClick (0);}
void dc1() {DoubleClick (1);}
void dc2() ...
void lpStart0() {LongPressStart (0);}
void lpStart2() {LongPressStart (2);}
void lpStart9() ...
void lpStop0() {LongPressStop (0);}
void lpStop2() {LongPressStop (2);}
void lpStop9() {LongPressStop (9);}
void lpStop15() ...
void dlp0() {DuringLongPress (0);}
void dlp2() {DuringLongPress (2);}
void dlp9() {DuringLongPress (9);}
void dlp15() ...
void SetupButtons() {
btn0.attachClick(sc0);
btn1.attachClick(sc1);
btn2.attachClick(sc2);
btn3...
btn0.attachDoubleClick(dc0);
btn1.attachDoubleClick(dc1);
btn2.attachDoubleClick(dc2);
btn3...
btn0.attachLongPressStart(lpStart0);
btn2.attachLongPressStart(lpStart2);
btn9.attachLongPressStart(lpStart9);
btn15...
btn0.attachLongPressStop(lpStop0);
btn2.attachLongPressStop(lpStop2);
btn9.attachLongPressStop(lpStop9);
btn15...
btn0.attachDuringLongPress(dlp0);
btn2.attachDuringLongPress(dlp2);
btn9.attachDuringLongPress(dlp9);
btn15...
}
void ButtonTicks() {
btn0.tick();
btn1.tick();
btn2.tick();
btn3...
}
Ich möchte mit jeder Klickvariante (Singleclick, Doubleklick,...) eigentlich immer gleiche Funktion aufrufen, jedoch soll die jeweilige ID vom Button mitgegeben werden damit ich weiß zu welcher Gruppe er gehört. Irgendwie schaffe ich das nicht. Deshalb habe ich für jeden Variante und für jeden Button eine eigene Funktion erstellt die immer die selbe Funktion aufruft und die ID mitgibt.
Leider kann ich nicht den ganzen Code posten weil nur der Onebutton Teil schon über 9000 Zeichen hat und nicht mehr im Forum erlaubt sind.
Geht das nicht irgendwie einfacher?
Es muss auch nicht unbedingt die OneButton Library sein, aber ich müsste halt die selben Aktionen raus bekommen. Um das selbst zu programmieren bin ich leider nicht gut genug
Danke schonmal!
lg
Martin