@@ -61,7 +61,11 @@ void common_hal_rotaryio_incrementalencoder_construct(rotaryio_incrementalencode
61
61
const mcu_pin_obj_t * pin_a , const mcu_pin_obj_t * pin_b ) {
62
62
mp_obj_t pins [] = {MP_OBJ_FROM_PTR (pin_a ), MP_OBJ_FROM_PTR (pin_b )};
63
63
if (!common_hal_rp2pio_pins_are_sequential (2 , pins )) {
64
- mp_raise_RuntimeError (translate ("Pins must be sequential" ));
64
+ pins [0 ] = MP_OBJ_FROM_PTR (pin_b );
65
+ pins [1 ] = MP_OBJ_FROM_PTR (pin_a );
66
+ if (!common_hal_rp2pio_pins_are_sequential (2 , pins )) {
67
+ mp_raise_RuntimeError (translate ("Pins must be sequential" ));
68
+ }
65
69
}
66
70
67
71
self -> position = 0 ;
@@ -71,8 +75,8 @@ void common_hal_rotaryio_incrementalencoder_construct(rotaryio_incrementalencode
71
75
encoder , MP_ARRAY_SIZE (encoder ),
72
76
1000000 ,
73
77
encoder_init , MP_ARRAY_SIZE (encoder_init ), // init
74
- NULL , 1 , 0 , 0xffffffff , // out pin
75
- pin_a , 2 , // in pins
78
+ NULL , 0 , 0 , 0 , // out pin
79
+ pins [ 0 ] , 2 , // in pins
76
80
3 , 0 , // in pulls
77
81
NULL , 0 , 0 , 0x1f , // set pins
78
82
NULL , 0 , 0 , 0x1f , // sideset pins
@@ -101,6 +105,7 @@ void common_hal_rotaryio_incrementalencoder_deinit(rotaryio_incrementalencoder_o
101
105
if (common_hal_rotaryio_incrementalencoder_deinited (self )) {
102
106
return ;
103
107
}
108
+ common_hal_rp2pio_statemachine_set_interrupt_handler (& self -> state_machine , NULL , NULL , 0 );
104
109
common_hal_rp2pio_statemachine_deinit (& self -> state_machine );
105
110
}
106
111
0 commit comments