
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
> 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 |