INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
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

#ifdef Feature_Taster_low
#define Taster1 = !Taster1
#endif

Kommt ein Compiler-Error....
Geht das irgendwie so??

Danke Info und Grüße,
Andreas
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
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
  #define ON  LOW
#else  
  #define ON  HIGH
#endif
(oder andersrum)

und dann hinterher die Taster abfragen per
Code:
if (Taster==ON)...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
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
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.06.2015, 11:49
Beitrag #4
RE: mit #ifdef Taster high-aktiv / low-aktiv ??
(22.06.2015 13:58)tito-t schrieb:  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
  #define ON  LOW
#else  
  #define ON  HIGH
#endif
(oder andersrum)

und dann hinterher die Taster abfragen per
Code:
if (Taster==ON)...

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 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
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 ?
Kenne jetzt die Syntax nicht auswendig weil ich das nie benutze...aber gehen müßte das doch...?
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
  if(!Taster) {
#else  
   if(Taster) {
#endif
...und das jedesmal, wenn man einen Taster abfragen will. Da ist der Vorschlag mit dem ON eigentlich besser.
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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.06.2015, 19:00
Beitrag #6
RE: mit #ifdef Taster high-aktiv / low-aktiv ??
(23.06.2015 12:19)Thorsten Pferdekämper schrieb:  ...
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
  if(!Taster) {
#else  
   if(Taster) {
#endif
...

...öhm also ohne das nun behaupten zu wollen...aber das meinte ich doch...
lg
bk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
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
...ist ON keine globale Variable.

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Servo mit einem Taster und 433mhz steuern Thor Wallhall 53 727 Heute 02:14
Letzter Beitrag: Thor Wallhall
  Taster an Interrupt - Prellen geschickter vermeiden als millis() zu prüfen? Flap 11 229 26.07.2017 21:53
Letzter Beitrag: Binatone
  Taster als Schalter -> Blinker bino29 8 459 22.06.2017 07:21
Letzter Beitrag: hotsystems
Smile Motorsteuerung mit Taster Eggi123 11 660 26.02.2017 15:48
Letzter Beitrag: MicroBahner
  Arduino-UNO LED über Taster digital zum leuchten zu bringen IvKriz 9 543 18.02.2017 08:33
Letzter Beitrag: renid55
  Hilfe bei Taster huber5093 11 534 14.02.2017 19:26
Letzter Beitrag: Tommy56
  8 Taster an einem Pin Kitt 9 708 04.02.2017 18:51
Letzter Beitrag: ardu_arne
  Led Impuls beim Taster betätigen clemens5555 11 713 17.01.2017 20:00
Letzter Beitrag: renid55
  Über drei Taster zwei externe Timer steuern Sidamo 23 975 09.01.2017 20:12
Letzter Beitrag: Tommy56
  Led mit taster ausschalten Frankeg 17 1.131 07.01.2017 21:17
Letzter Beitrag: renid55

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste