-         
Ergebnis 1 bis 6 von 6

Thema: Variable Ausgabe

  1. #1
    Benutzer Stammmitglied Avatar von CsMTEch
    Registriert seit
    01.05.2013
    Ort
    bei Aurich (Niedersachsen)
    Beiträge
    73

    Ausrufezeichen Variable Ausgabe

    Anzeige

    Hallo,

    ich würde die gerne variable Bitmaske haben, also:

    PortD &= 0bxxxx0000

    Die 'x's (oder wie ist der Plural?) sollen dabei Variabel sein, also entweder 1 oder 0.

    Wie könnte man das realisieren?

    Lg

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    27
    Beiträge
    1.192
    Hallo,
    ganz einfach:
    PORTD &= maske;
    Und maske muss dann halt vorher irgendwo definiert sein.
    Sollen alle x den gleichen Wert haben? Oder sollen diese unabhängig voneinander sein?
    Grüße, Bernhard
    "Im Leben geht es nicht darum, gute Karten zu haben, sondern auch mit einem schlechten Blatt gut zu spielen." R.L. Stevenson

  3. #3
    Benutzer Stammmitglied Avatar von CsMTEch
    Registriert seit
    01.05.2013
    Ort
    bei Aurich (Niedersachsen)
    Beiträge
    73
    Wie definiere ich denn "Maske"?
    Mach ich das ähnlich wie mit einer Variable (int Zahl = 20)?

    Die 'x'e soll am besten unabhängig von einander sein, also z.B. 0110.

    Schon mal danke für die rasche Antwort

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    27
    Beiträge
    1.192
    Z.B.
    Code:
    uint8_t maske;
    maske=0;
    if(a){maske|=(1<<7);}
    if(b){maske|=(1<<6);}
    if(c){maske|=(1<<5);}
    if(d){maske|=(1<<4);}
    PORTD&=maske;
    (ungetestet)
    Je nach dem wie abcd gesetzt sind, wird die Maske angepasst.
    Die Maske ist in dem Beispiel abcd0000 (binär), wobei a,b,c,d jeweils 0 oder 1 sein können.
    Sicherlich gibt es elegantere Lösungen.

    Wozu möchtest du das verwenden? Je nach Aufgabe kann man das eventuell auch ganz anders lösen.
    "Im Leben geht es nicht darum, gute Karten zu haben, sondern auch mit einem schlechten Blatt gut zu spielen." R.L. Stevenson

  5. #5
    Benutzer Stammmitglied Avatar von CsMTEch
    Registriert seit
    01.05.2013
    Ort
    bei Aurich (Niedersachsen)
    Beiträge
    73
    Ich will eigentlich ein Bitmaske an eine Funktion übergeben, die dementsprechend die Ausgänge schaltet und LEDs leuchten lässt.

    void Out_Leds(Bitmaske)
    {
    PortD &= Bitmaske;
    }

    In der Main sollte die Funktion dann so aufgerufen werden können:

    Out_Leds(11110000);

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    27
    Beiträge
    1.192
    Achso an D4...D7 hängen LEDs. Und die restlichen Pins an PORTD sollen unverändert bleiben?
    Hm
    Versuch mal das:
    Code:
    void Out_Leds(uint8_t maske)
    {
    PORTD|=(maske & 0xf0);    //LEDs einschalten, die eingeschaltet werden sollen
    PORTD&=(maske | 0x0f);    //LEDs ausschalten, die ausgeschaltet werden sollen
    }
    (ungetestet)
    Die Main muss dann Out_Leds(0b........); aufrufen.
    Grüße, Bernhard
    "Im Leben geht es nicht darum, gute Karten zu haben, sondern auch mit einem schlechten Blatt gut zu spielen." R.L. Stevenson

Ähnliche Themen

  1. Ausgabe eines Bytes auf ein LCD dauert länger als die Ausgabe eines Strings?
    Von Thomas E. im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 20.03.2012, 21:43
  2. LCD-Ausgabe
    Von Limloz im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 28.06.2011, 16:56
  3. Print-Ausgabe
    Von DEAF BOY im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 12.12.2010, 20:43
  4. Formatierte ausgabe
    Von Mr-400-Volt im Forum Software, Algorithmen und KI
    Antworten: 5
    Letzter Beitrag: 04.11.2006, 19:27
  5. PORT-AUSGABE!
    Von Exodus im Forum AVR Hardwarethemen
    Antworten: 0
    Letzter Beitrag: 14.06.2006, 12:17

Berechtigungen

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