File tree 4 files changed +9
-3
lines changed
current_sense/hardware_specific/rp2040 4 files changed +9
-3
lines changed Original file line number Diff line number Diff line change @@ -18,7 +18,12 @@ void Sensor::update() {
18
18
float Sensor::getVelocity () {
19
19
// calculate sample time
20
20
float Ts = (angle_prev_ts - vel_angle_prev_ts)*1e-6 ;
21
- // TODO handle overflow - we do need to reset vel_angle_prev_ts
21
+ if (Ts < 0 .0f ) { // handle micros() overflow - we need to reset vel_angle_prev_ts
22
+ vel_angle_prev = angle_prev;
23
+ vel_full_rotations = full_rotations;
24
+ vel_angle_prev_ts = angle_prev_ts;
25
+ return velocity;
26
+ }
22
27
if (Ts < min_elapsed_time) return velocity; // don't update velocity if deltaT is too small
23
28
24
29
velocity = ( (float )(full_rotations - vel_full_rotations)*_2PI + (angle_prev - vel_angle_prev) ) / Ts;
Original file line number Diff line number Diff line change 28
28
#define _PI_6 0.52359877559f
29
29
#define _RPM_TO_RADS 0.10471975512f
30
30
31
- #define NOT_SET -12345.0
31
+ #define NOT_SET -12345.0f
32
32
#define _HIGH_IMPEDANCE 0
33
33
#define _HIGH_Z _HIGH_IMPEDANCE
34
34
#define _ACTIVE 1
Original file line number Diff line number Diff line change 5
5
#include " ../common/foc_utils.h"
6
6
7
7
8
- #if defined(_STM32_DEF_) || defined(ESP_H) || defined(ARDUINO_ARCH_AVR) || defined(ARDUINO_SAM_DUE) || defined(CORE_TEENSY) || defined(NRF52_SERIES )
8
+ #if ! defined(TARGET_RP2040) && ! defined(_SAMD21_) && ! defined(_SAMD51_) && ! defined(_SAME51_ )
9
9
#define PinStatus int
10
10
#endif
11
11
Original file line number Diff line number Diff line change 10
10
#include " hardware/dma.h"
11
11
#include " hardware/irq.h"
12
12
#include " hardware/pwm.h"
13
+ #include " hardware/adc.h"
13
14
14
15
15
16
/* Singleton instance of the ADC engine */
You can’t perform that action at this time.
0 commit comments