diff --git a/quantum/dip_switch.c b/quantum/dip_switch.c index ab74222d10..66c166ce45 100644 --- a/quantum/dip_switch.c +++ b/quantum/dip_switch.c @@ -52,13 +52,13 @@ void dip_switch_read(bool forced) { for (uint8_t i = 0; i < NUMBER_OF_DIP_SWITCHES; i++) { dip_switch_state[i] = !readPin(dip_switch_pad[i]); dip_switch_mask |= dip_switch_state[i] << i; - if (last_dip_switch_state[i] ^ dip_switch_state[i] || forced) { + if (last_dip_switch_state[i] != dip_switch_state[i] || forced) { has_dip_state_changed = true; dip_switch_update_kb(i, dip_switch_state[i]); } } if (has_dip_state_changed) { dip_switch_update_mask_kb(dip_switch_mask); + memcpy(last_dip_switch_state, dip_switch_state, sizeof(dip_switch_state)); } - memcpy(last_dip_switch_state, dip_switch_state, sizeof(&dip_switch_state)); }