- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 8 von 8

Thema: Signal lesen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    37
    Beiträge
    1.225
    Mit besagter Codezeile maskierst du ja das gewünschte Bit aus. Jetzt hast du zwei Möglichkeiten:
    1. Das Bit an die gewünschte Stelle (ganz nach rechts) schieben. Geht mit (PINB & (1 << PB2)) >> PB2.
    2. Wenn du sowieso eine Fallunterscheidung machst, einfach auf ungleich null prüfen: if ((PINB & (1 << PB2)) != 0) { ...

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  2. #2
    Meine Funktion sieht so aus:
    Code:
    uint8_t digitalRead(uint8_t pin) {
    	uint8_t data;
    	uint8_t reg;
    	if(pin == PIN0 || pin == PIN1 || pin == PIN2 || pin == PIN3){
    		reg = PINB;
    	}
    	data = reg & (1 << pin) >> pin;
    
    	return data;
    }
    Es gibt in einem LCD nur 0 zurück?

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    37
    Beiträge
    1.225
    Versuchs Mal damit (Operatorreihenfolge!)
    Code:
    uint8_t digitalRead(uint8_t pin) {
    	data = (reg & (1 << pin)) >> pin;
    Davon abgesehen ist das eine reichlich ineffiziente Art, einen Pin einzulesen.

    mfG,
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  4. #4
    Wie denn dann?

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    37
    Beiträge
    1.225
    Durch einen direkten Zugriff? Zum Beispiel Anstelle von if(digitalRead(...)) ein if((PINx & (1 << PINxy)) != 0))

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.694
    ... Meine Funktion sieht so aus:
    Code:
    ...
        if(pin == PIN0 || pin == PIN1 || pin == PIN2 || pin == PIN3) ...
    Vorsicht Falle:
    Zitat Zitat von Kernighan-Ritchie
    ... Ausdrücke, die mit && oder || verknüpft sind, werden von links nach rechts bewertet; dabei wird die Bewertung abgebrochen, sobald feststeht, ob die Verknüpfung zutrifft oder nicht ...
    Wenn Du also auf Null abfragst und ne 1 erwartest/erhoffst, dann kriegst Du die NIE wenn vor dem high-Pin ein low-Pin steht *ätschepätsch sagt der Compiler*

    Zitat Zitat von Martin Fischer Beitrag anzeigen
    Wie denn dann?
    Du liest meine Posting nicht stelle ich fest. Prima, dann brauch ich nix mehr zu schreiben.
    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
  •  

fchao-Sinus-Wechselrichter AliExpress