-_ao_quadrature_set(uint8_t q, uint8_t new) {
- uint8_t old = ao_quadrature_state[q];
-
-#ifdef AO_QUADRATURE_SINGLE_CODE
- if (new == ao_quadrature_steps[old].inc) {
- _ao_quadrature_queue(q, 1);
- } else if (new == ao_quadrature_steps[old].dec) {
- _ao_quadrature_queue(q, -1);
- }
-#else
- if (old != new && new == 0) {
- if (old == 2)
- _ao_quadrature_queue(q, 1);
- else if (old == 1)
- _ao_quadrature_queue(q, -1);
- }
-#endif
+_ao_quadrature_set(uint8_t q, uint8_t new)
+{
+ uint8_t old;
+
+ ao_arch_block_interrupts();
+ old = ao_quadrature_state[q];