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
  mehrere Taster entprellen Kitt 15 524 24.10.2016 21:17
Letzter Beitrag: georg01
  Taster für mehrere Funktionen matthias3579 5 350 16.08.2016 16:00
Letzter Beitrag: StephanBuerger
  Steuern von 4 Servo mittels eines Taster und eines Potis Jackie09 17 758 16.07.2016 11:43
Letzter Beitrag: Binatone
  Schwellwert mit Taster ändern malsehen 16 1.414 12.04.2016 20:11
Letzter Beitrag: malsehen
  3 Schrittmotoren, 2 LED's 1 Taster cichla 0 393 31.03.2016 15:21
Letzter Beitrag: cichla
  Arduino Alarmanlage mit Taster erweitern Vengance 0 524 22.03.2016 17:54
Letzter Beitrag: Vengance
  I²C vom NANO zum PI Probleme mit High/Low Bit Tobias1984 4 332 29.02.2016 00:00
Letzter Beitrag: hotsystems
  Taster abfragen Rudi 3 691 25.02.2016 14:03
Letzter Beitrag: hotsystems
  EMP setzt Input-PIN kurzzeitig auf HIGH holo 6 450 24.02.2016 19:25
Letzter Beitrag: Carlo
  OUTPUT bleibt HIGH und timer stopt nicht. Atwist 4 534 08.01.2016 11:02
Letzter Beitrag: Atwist

Gehe zu:


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