Your tests of send_bits need to all mention send_bits, like:
Code:
if (send_bits==0x0000||send_bits==0x4000||send_bits==0x4080||
send_bits==0x4081||send_bits==0x4001||send_bits==0x0081||
send_bits==0x0080||send_bits==0x0016)
But it's complicated enough that you could write a function (or macro function).
Code:
int test_bits(SendBitsType b) {
return b==0x0000||b==0x4000||b==0x4080||b==0x4081||
b==0x4001||b==0x0081||b==0x0080||b==0x0016;
}
// ... some function
if (test_bits(send_bits))
switch (on_off) {
case 0:
send_bits -= LEDs;
break;
case 1:
send_bits += LEDs;
break;
}
Alternatively, you could use multiple switch cases together:
Code:
switch (send_bits) {
case 0x0000: case 0x4000: case 0x4080: case 0x4081:
case 0x4001: case 0x0081: case 0x0080: case 0x0016:
send_bits += (on_off ? 1 : -1) * LEDs;
}