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
Smile Motorsteuerung mit Taster Eggi123 11 535 26.02.2017 15:48
Letzter Beitrag: MicroBahner
  Arduino-UNO LED über Taster digital zum leuchten zu bringen IvKriz 9 426 18.02.2017 08:33
Letzter Beitrag: renid55
  Hilfe bei Taster huber5093 11 425 14.02.2017 19:26
Letzter Beitrag: Tommy56
  8 Taster an einem Pin Kitt 9 586 04.02.2017 18:51
Letzter Beitrag: ardu_arne
  Led Impuls beim Taster betätigen clemens5555 11 552 17.01.2017 20:00
Letzter Beitrag: renid55
  Über drei Taster zwei externe Timer steuern Sidamo 23 759 09.01.2017 20:12
Letzter Beitrag: Tommy56
  Led mit taster ausschalten Frankeg 17 903 07.01.2017 21:17
Letzter Beitrag: renid55
  aufeinander Aufbauende Lichtaktion mit einem Taster Colby 9 548 17.12.2016 13:30
Letzter Beitrag: Colby
  mehrere Taster entprellen Kitt 15 1.166 24.10.2016 21:17
Letzter Beitrag: georg01
  Taster für mehrere Funktionen matthias3579 5 616 16.08.2016 16:00
Letzter Beitrag: StephanBuerger

Gehe zu:


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