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
  Taster: Wechselschaltung Nordlicht 33 1.255 18.09.2017 09:35
Letzter Beitrag: MicroBahner
  Wieso Ausgänge aktiv ( ATTiny2313) Mathias 10 583 22.08.2017 20:31
Letzter Beitrag: Bitklopfer
  Attiny2313 Pin auf High setzen. georg01 9 432 20.08.2017 09:20
Letzter Beitrag: hotsystems
  Taster an Interrupt - Prellen geschickter vermeiden als millis() zu prüfen? Flap 19 1.804 04.08.2017 08:10
Letzter Beitrag: Binary1
  Servo mit einem Taster und 433mhz steuern Thor Wallhall 63 2.658 29.07.2017 11:02
Letzter Beitrag: Thor Wallhall
  Taster als Schalter -> Blinker bino29 8 669 22.06.2017 07:21
Letzter Beitrag: hotsystems
Smile Motorsteuerung mit Taster Eggi123 11 793 26.02.2017 15:48
Letzter Beitrag: MicroBahner
  Arduino-UNO LED über Taster digital zum leuchten zu bringen IvKriz 9 671 18.02.2017 08:33
Letzter Beitrag: renid55
  Hilfe bei Taster huber5093 11 654 14.02.2017 19:26
Letzter Beitrag: Tommy56
  8 Taster an einem Pin Kitt 9 807 04.02.2017 18:51
Letzter Beitrag: ardu_arne

Gehe zu:


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