Forum: Mikrocontroller und Digitale Elektronik AVR Logik - Begriff Maske


von Martin M. (silent_max)


Lesenswert?

Hallo liebe Gemeinde.

Ich bin im AVR Tutorial beim Kapitel Logik angelangt. Da in diesem 
Kapitel der Begriff Maske recht oft vor kommt, wollte ich fragen, was 
man unter dem Begriff Maske genau versteht??

Hier ein Auszug aus dem Kapitel:

"Im Ergebnis tauchen an den Bitpositionen an denen in der Maske eine 1 
war auf jeden Fall ebenfalls eine 1 auf. In den restlichen Bitpositionen 
hängt es vom ersten Argument ab, ob im Ergebnis eine 1 auftaucht oder 
nicht."

Vielen Dank für die Antworten im Voraus.

Gruß

Max

von ich (Gast)


Lesenswert?

Die Maske ist ein Bitmuster, z.B. 8 Bit. Wenn an einer oder mehreren 
Stellen (Bitpositionen) eine "1" steht, wird der Wert beachtet, bei 
einer "0" nicht.
Eine Maske sagt also immer aus, welche Bitpositionen z.B für einen 
Vergleich relevant sind (1) und welche egal sind (0).

von Martin M. (silent_max)


Lesenswert?

Ah ok...

Danke für Deine schnelle Antwort.

von Oliver S. (oliverso)


Lesenswert?

Nimm mal an, du möchtest Status des Pin0 am PortA auslesen. Der Pin kann 
0 oder 1 sein. Auslesen kannst du aber nur den Status aller 8 Pins 
zusammen über das Register PINA.

Wenn du also testest:
1
if (PINA == 1)
2
// mach was
3
[/c)
4
5
dann wird die Bedingung nur wahr, wenn ausschlieslich Pin0 high ist. Sollten noch andere PIns high sein , ist das Ergebnis nicht 1.
6
7
Möchtest du etwas in Abhängigkeit von Pin0 machen, wobei der Status der anderen Pins nicht beachtet werden soll, musst du alle anderen Pins ausmaskieren. Das geht mit einer Bitmaske:
8
9
[c] if ((PINA & 0b00000001) == 1)
10
// mach was

Oliver

: Bearbeitet durch User
von spess53 (Gast)


Lesenswert?

Hi

>"Im Ergebnis tauchen an den Bitpositionen an denen in der Maske eine 1
>war auf jeden Fall ebenfalls eine 1 auf. In den restlichen Bitpositionen
>hängt es vom ersten Argument ab, ob im Ergebnis eine 1 auftaucht oder
>nicht."

Nur mal so: Das ist eine ODER-Verknüpfung und kein UND.

Argument  Maske  Ergebnis

  0        0        0
  0        1        1
  1        0        1
  1        1        1

MfG Spess

von Karl H. (kbuchegg)


Lesenswert?

ich schrieb:

> Eine Maske sagt also immer aus, welche Bitpositionen z.B für einen
> Vergleich relevant sind (1) und welche egal sind (0).


Wobei es je nach Operation auch genau anders rum sein kann.

Eine Maske ist so ähnlich wie im täglichen Leben. Ein Stück Papier mit 
Löchern drinnen, die du zb auf einen Text legst. Dadurch 'siehst' du nur 
noch die Buchstaben, die unter den Löchern liegen. Alles andere ist 
ausgeblendet.

Ob diese Löcher jetzt einem 0-Bit entsprechen oder einem 1-Bit, hängt 
von der Operation ab, die du mithilfe der Maske machst. Auch wie im 
täglichen Leben: du kannst die Maske benutzen, um nur bestimmte 
Buchstaben lesbar zu machen. Du kannst die Maske aber auch benutzen um 
die Buchstaben 'freizustellen', die du mit einem Radiergummi ausradieren 
willst oder mit einer Farbspraydose übersprühen willst. Erst die 
Kombination der Maske mit der durchgeführten Operation entscheidet was 
wirklich passiert. Aber die Maske sorgt auf jeden Fall dafür, dass es 
nur mit bestimmten Teilen vom ganzen passiert.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.