- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 8 von 8

Thema: Signal lesen

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #8
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.694
    Hallo Martin,

    willkommen im Forum.
    ... Pin ablesen ... High(1) oder Low (0) .. in dem Fall 4 bei einer High-Spannung ...
    Vielleicht mal der Reihe nach:
    Wenn Du nen Wert ungleich 0 bekommst, dann ist das Ergebnis der Abfrage true, dann ist der Pinn high, bei low gibts ne Null - eben ein false. Du hast mit Deiner Codezeile also schon genau das, was Du willst: die Unterscheidung zwischen low und high.

    Es gäbe aber auch andere Abfragen - ich als (denk)fauler Mensch möchte es gerne besser verständlich haben (jedenfalls für mich) und habe dies:
    Code:
    #define IsBitSet(ADDR,BIT)     (((ADDR)  &  (1<<BIT))?1:0)    // Fragt Bit = 1?
    #define IsBitClr(ADDR,BIT)     (!((ADDR)  &  (1<<BIT))?1:0)   // Fragt Bit = 1?
    Damit kann man nun weiter "spielen", beispielsweise frage ich auch mal ein, zwei oder mehrere Tasten ab, etwa so:
    Code:
    // - - - - - - - - - - - - - - - -
      #define PRTtstLCD     PIND    //
      #define Tst_A            6    //
      #define Tst_B            7    //
      #define PRTtstLC2     PINB    //
      #define Tst_C            7    // 
      #define TAan          IsBitClr (PRTtstLCD, Tst_A)     // Taster A gedrückt ??
      #define TAaus         IsBitSet (PRTtstLCD, Tst_A)     // Taster A gelöst ??
      #define TBan          IsBitClr (PRTtstLCD, Tst_B)     // Taster B gedrückt ??
      #define TBaus         IsBitSet (PRTtstLCD, Tst_B)     // Taster B gelöst ??
      #define TCan          IsBitClr (PRTtstLC2, Tst_C)     // Taster C gedrückt ??
      #define TCaus         IsBitSet (PRTtstLC2, Tst_C)     // Taster C gelöst ??
    
    // ============================================================================== =
    //      ... und als Anwendung irgendwo im Code um abzufragen, ob eine von
    //              drei Tasten gedrückt wurde:
    ...
        if ((TAan) || (TBan) || (TCan)) Isec_lok = 0;       //
    ...
    Kleines Problemchen beim Tastendruck: die Aktion könnte eine nächste Abfrage auf die gleiche Taste "missverstehen", daher gehts bei mir meist nur dann weiter, wenn die Taste a) erstmal gedrückt und b) danach wieder gelöst wird. Geht easy so:
    Code:
      while (TBaus) {}      // Warten bis TB gedrückt ist       
      while (TBan) {}       // Warten bis TB gelöst ist
    Geändert von oberallgeier (01.12.2013 um 14:27 Uhr)
    Ciao sagt der JoeamBerg

Ähnliche Themen

  1. PWM Signal umwandeln in ein 0-5V Signal
    Von OG38 im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 22.08.2011, 21:03
  2. Antworten: 14
    Letzter Beitrag: 16.09.2008, 17:27
  3. Umwandlung von einem RS232-Signal in ein RJ45-Signal
    Von Einstein2312 im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 15.09.2007, 16:55
  4. Antworten: 0
    Letzter Beitrag: 04.07.2007, 16:10
  5. LNB Signal zum Audio Signal wandeln
    Von tucow im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 11.01.2007, 18:40

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen