Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: bit's aus einem wort auslesen Kategorie: Programmierung C (von Achim - 27.07.2008 16:16)
 Als Antwort auf bit's aus einem wort auslesen von chuckie - 27.07.2008 12:10
Achim nutzt:  CC1-Station V1.1
> Ich habe folgendes problem:
>
> Ich möchte von einer 16 bit porterweitung die port zustände auslesen, dies habe ich vor als wort zu machen um mir den aufwand etwas zu erleichten. Nun möchte ich diese wort im programm in einzelne bit zerlgen, doch wie mache ich das?
>
> es geht mir darum um im programm die einzelne port zustände auszulesen.

Das geht über eine sogenannte Bitmaske und binäres Und. Die Syntax der CC2 kenne ich nicht, daher kann ich Dir kein dort übersetzbares Code-Beispiel liefern, aber im Prinzip geht es so:

if (PortWort & 0x0001 != 0)
  Bit 0 ist gesetzt

if (PortWort & 0x0002 != 0)
  Bit 1 ist gesetzt

if (PortWort & 0x0004 != 0)
  Bit 2 ist gesetzt

usw.
In der Bitmaske ist immer genau ein Bit gesetzt, nämlich das, das Du testen willst. Die Werte sind also hex bzw. Dezimal:
0x0001, 1
0x0002, 2
0x0004, 4
0x0008, 8
0x0010, 16
0x0020, 32
0x0040, 64
0x0080, 128
0x0100, 256
0x0200, 512
0x0400, 1024
0x0800, 2048
0x1000, 4096
0x2000, 8192
0x4000, 16384
0x8000, 32768

HTH

Bye
 Achim

 Antwort schreiben

Bisherige Antworten: