mit #ifdef Taster high-aktiv / low-aktiv ??
|
22.06.2015, 13:20
Beitrag #1
|
|||
|
|||
mit #ifdef Taster high-aktiv / low-aktiv ??
Hallo Leute,
mal wieder eine Frage: Gibt es eine Möglichkeit, ähnlich #ifdef, angeschlossene Taster wahlweise HIGH-aktiv oder LOW-aktiv zu benutzen. Also: Ich habe 5 Taster, schliessen nach GND. AUf meinem Steckbrett habe ich aber eine fest verdrahtete Tasterkombination, die schliessen nach +5V. Nun wollte ich im Programm einfach nach Fertigstellung des Projektes nicht alle Zeilen suchen und den Code manuell ändern, sondern mit einer einzigen Zeile am Anfang des Codes. Vielleicht so: Code: #define Feature_Taster_low Kommt ein Compiler-Error.... Geht das irgendwie so?? Danke Info und Grüße, Andreas |
|||
22.06.2015, 13:58
(Dieser Beitrag wurde zuletzt bearbeitet: 22.06.2015 13:59 von tito-t.)
Beitrag #2
|
|||
|
|||
RE: mit #ifdef Taster high-aktiv / low-aktiv ??
hallo,
du kannst keine Variablen in #ifdef einschließen, sondern nur konstante Codeblöcke. Du kannst aber eine Konstante mit einem Wert belegen, z.B. ON Code: #ifdef Feature_Taster_low und dann hinterher die Taster abfragen per Code: if (Taster==ON)... |
|||
23.06.2015, 11:40
Beitrag #3
|
|||
|
|||
RE: mit #ifdef Taster high-aktiv / low-aktiv ??
Hallo tito-t,
vielen Dank! So mache ich es !!! Grüße, Andreas |
|||
23.06.2015, 11:49
Beitrag #4
|
|||
|
|||
RE: mit #ifdef Taster high-aktiv / low-aktiv ??
(22.06.2015 13:58)tito-t schrieb: hallo, Hi, kann die IDE den keine bedingte Kompilierung wie jeder normale C-Kompiler auch ? Kenne jetzt die Syntax nicht auswendig weil ich das nie benutze...aber gehen müßte das doch...? lg bk 1+1 = 10 ![]() ![]() |
|||
23.06.2015, 12:19
Beitrag #5
|
|||
|
|||
RE: mit #ifdef Taster high-aktiv / low-aktiv ??
(23.06.2015 11:49)Bitklopfer schrieb: kann die IDE den keine bedingte Kompilierung wie jeder normale C-Kompiler auch ?Klar geht das. Es ist ja auch ein ganz normaler C++-Compiler. ...aber ich glaube, dass es damit in dem Fall nur komplizierter wird: Code: #ifdef Feature_Taster_low Allerdings erübrigt sich so etwas nach einiger Zeit sowieso, da man meiner Meinung nach Taster immer gegen GND schalten sollte. Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen. |
|||
23.06.2015, 19:00
Beitrag #6
|
|||
|
|||
RE: mit #ifdef Taster high-aktiv / low-aktiv ??
(23.06.2015 12:19)Thorsten Pferdekämper schrieb: ... ...öhm also ohne das nun behaupten zu wollen...aber das meinte ich doch... lg bk 1+1 = 10 ![]() ![]() |
|||
23.06.2015, 19:11
(Dieser Beitrag wurde zuletzt bearbeitet: 23.06.2015 19:14 von HaWe.)
Beitrag #7
|
|||
|
|||
RE: mit #ifdef Taster high-aktiv / low-aktiv ??
im Prinzip ist doch beides bedingte Kompilierung, je nach #ifdef-Zustand.
Einmal wird eine globale Variable (ON) bedingt kompiliert (je nach #ifdef) und dann nur noch diese Variable abgefragt ( (if(Taster==ON) das war Titos Vorschlag), das andere Mal wird jedesmal jede einzelne Tastenabfrage bedingt kompiliert (viel umständlicher, da viel mehr Einzelfälle ( jedemal muss man if(Taster) oder if(!Taster) schreiben) Ich hatte das bisher auch noch nicht so umgesetzt, aber nach Titos Methode werde ich es jetzt künftig auch machen! ps, man könnte natürlich auch je nach PinMode-Definition in setup() entscheiden (INPUT oder INPUT_PULLUP) und daanch die Taste konfigurieren. Muss ich mir mal überlegen. |
|||
23.06.2015, 19:19
Beitrag #8
|
|||
|
|||
RE: mit #ifdef Taster high-aktiv / low-aktiv ??
(23.06.2015 19:11)HaWe schrieb: Einmal wird eine globale Variable (ON)in dem Coding hier: Code: #define ON LOW Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen. |
|||
|
|
|
Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste