kann mir jemand den Zusammenhang zwischen der Bitmaske und den Eingängen in PicoC-Bausteinen erklären?
Soweit ich bisher verstanden habe schränkt die Zeile "if (nEvents & 0xe)" die EIngänge ein, die berücksichtigt werden.
In der Loxone-Doku steht folgendes:
This code snippet is likely for the program block with 4 inputs. You can change the bitmask in line 8 to make the code suitable for the other program blocks:
Program 8: if(nEvents & 0x1c)
Program 16: if(nEvents & 0x38)
char szBuffer[128];
float f1,f2,f3,f4;
int nEvents;
while(TRUE)
{
nEvents = getinputevent();
if (nEvents & 0xe)
0x1c = (0000 0000 000)1 1100 -> Was bedeutet "Program 8"? Nahc meiner Logik wären hier Eingang 12-14 aktiv?
0x38 = 111000 -> Was bedeutet "Program 16"? Anscheinend wieder 3 EIngänge aktiv, aber um einen verschoben. also Eingang 11-13?
0xe = 1110 -> also diesmal Eingang 13-15???
Irgendwie macht das Ganze so keinen Sinn. Ich habe das Gefühl, mein Denkansatz ist komplett falsch.
Kann mir jemand erklären, wie das Ganze funktioniert?
Viele Grüße
Tobias
Kommentar