16-bit register bit parsing

Code example for check high & low bits in a 16-bits register.

1 Like

Blockquote
10 REM “ALARMS BIT PARSER-1”
20 ALMVALUE = ALARM_1
30 IF ALMVALUE >= 32768 THEN BIT_15 = 1 ELSE BIT_15 = 0
40 IF ALMVALUE > 32767 THEN ALMVALUE = ALMVALUE - 32768
50 IF ALMVALUE >= 16384 THEN BIT_14 = 1 ELSE BIT_14 = 0
60 IF ALMVALUE > 16383 THEN ALMVALUE = ALMVALUE - 16384
70 IF ALMVALUE >= 8192 THEN BIT_13 = 1 ELSE BIT_13 = 0
80 IF ALMVALUE > 8191 THEN ALMVALUE = ALMVALUE - 8192
90 IF ALMVALUE >= 4096 THEN BIT_12 = 1 ELSE BIT_12 = 0
100 IF ALMVALUE > 4095 THEN ALMVALUE = ALMVALUE - 4096
110 IF ALMVALUE >= 2048 THEN BIT_11 = 1 ELSE BIT_11 = 0
120 IF ALMVALUE > 2047 THEN ALMVALUE = ALMVALUE - 2048
130 IF ALMVALUE >= 1024 THEN BIT_10 = 1 ELSE BIT_10 = 0
140 IF ALMVALUE > 1023 THEN ALMVALUE = ALMVALUE - 1024
150 IF ALMVALUE >= 512 THEN BIT_9 = 1 ELSE BIT_9 = 0
160 IF ALMVALUE > 511 THEN ALMVALUE = ALMVALUE - 512
170 IF ALMVALUE >= 256 THEN BIT_8 = 1 ELSE BIT_8 = 0
180 IF ALMVALUE > 255 THEN ALMVALUE = ALMVALUE - 256
190 IF ALMVALUE >= 128 THEN BIT_7 = 1 ELSE BIT_7 = 0
200 IF ALMVALUE > 127 THEN ALMVALUE = ALMVALUE - 128
210 IF ALMVALUE >= 64 THEN BIT_6 = 1 ELSE BIT_6 = 0
220 IF ALMVALUE > 63 THEN ALMVALUE = ALMVALUE - 64
230 IF ALMVALUE >= 32 THEN BIT_5 = 1 ELSE BIT_5 = 0
240 IF ALMVALUE > 31 THEN ALMVALUE = ALMVALUE - 32
250 IF ALMVALUE >= 16 THEN BIT_4 = 1 ELSE BIT_4 = 0
260 IF ALMVALUE > 15 THEN ALMVALUE = ALMVALUE - 16
270 IF ALMVALUE >= 8 THEN BIT_3 = 1 ELSE BIT_3 = 0
280 IF ALMVALUE > 7 THEN ALMVALUE = ALMVALUE - 8
290 IF ALMVALUE >= 4 THEN BIT_2 = 1 ELSE BIT_2 = 0
300 IF ALMVALUE > 3 THEN ALMVALUE = ALMVALUE - 4
310 IF ALMVALUE >= 2 THEN BIT_1 = 1 ELSE BIT_1 = 0
320 IF ALMVALUE > 1 THEN ALMVALUE = ALMVALUE - 2
330 IF ALMVALUE = 1 THEN BIT_0 = 1 ELSE BIT_0 = 0
340 END

Blockquote

1 Like

I see we need some new commands and structures for handling bits. Chelsea will work on it.

1 Like