40
40
#define MAX_PULSE 65535
41
41
#define MIN_PULSE 10
42
42
43
- uint16_t pulsein_program [] = {
43
+ static const uint16_t pulsein_program [] = {
44
44
0x4001 , // 1: in pins, 1
45
45
};
46
46
@@ -57,29 +57,23 @@ void common_hal_pulseio_pulsein_construct(pulseio_pulsein_obj_t *self,
57
57
self -> start = 0 ;
58
58
self -> len = 0 ;
59
59
60
- bool ok = rp2pio_statemachine_construct (& self -> state_machine ,
61
- pulsein_program , sizeof (pulsein_program ) / sizeof (pulsein_program [0 ]),
62
- 1000000 ,
63
- NULL , 0 ,
64
- NULL , 0 ,
65
- pin , 1 ,
66
- 0 ,0 ,
67
- NULL , 0 ,
68
- NULL , 0 ,
69
- 1 , 0 ,
70
- NULL , // jump pin
71
- 1 << self -> pin , false, true,
72
- false, 8 , false, // TX, unused
73
- false,
74
- true, 32 , true, // RX auto-push every 32 bits
75
- false, // claim pins
76
- false, // Not user-interruptible.
77
- false, // No sideset enable
78
- 0 , -1 ); // wrap settings
79
-
80
- if (!ok ) {
81
- mp_raise_RuntimeError (translate ("All state machines in use" ));
82
- }
60
+ common_hal_rp2pio_statemachine_construct (& self -> state_machine ,
61
+ pulsein_program , MP_ARRAY_SIZE (pulsein_program ),
62
+ 1000000 , // frequency
63
+ NULL , 0 , // init, init_len
64
+ NULL , 0 , 0 , 0 , // first out pin, # out pins, initial_out_pin_state
65
+ pin , 1 , 0 , 0 , // first in pin, # in pins
66
+ NULL , 0 , 0 , 0 , // first set pin
67
+ NULL , 0 , 0 , 0 , // first sideset pin
68
+ false, // No sideset enable
69
+ NULL , PULL_NONE , // jump pin, jmp_pull
70
+ 0 , // wait gpio pins
71
+ true, // exclusive pin usage
72
+ false, 8 , false, // TX, setting we don't use
73
+ false, // wait for TX stall
74
+ true, 32 , true, // RX auto pull every 32 bits. shift left to output msb first
75
+ false, // Not user-interruptible.
76
+ 0 , -1 ); // wrap settings
83
77
84
78
pio_sm_set_enabled (self -> state_machine .pio ,self -> state_machine .state_machine , false);
85
79
pio_sm_clear_fifos (self -> state_machine .pio ,self -> state_machine .state_machine );
0 commit comments