2
2
/* *
3
3
* Support for the RP2040 MCU, as found on the Raspberry Pi Pico.
4
4
*/
5
+
6
+ #include " ./rp2040_mcu.h"
7
+
8
+
5
9
#if defined(TARGET_RP2040)
6
10
7
11
13
17
#define SIMPLEFOC_DEBUG_RP2040
14
18
15
19
#include " ../../hardware_api.h"
16
- #include " ./rp2040_mcu.h"
17
20
#include " hardware/pwm.h"
18
21
#include " hardware/clocks.h"
22
+ #include < pinDefinitions.h>
19
23
20
24
#define _PWM_FREQUENCY 24000
21
25
#define _PWM_FREQUENCY_MAX 66000
@@ -30,7 +34,8 @@ uint16_t wrapvalues[NUM_PWM_SLICES];
30
34
31
35
// TODO add checks which channels are already used...
32
36
33
- void setupPWM (int pin, long pwm_frequency, bool invert, RP2040DriverParams* params, uint8_t index) {
37
+ void setupPWM (int pin_nr, long pwm_frequency, bool invert, RP2040DriverParams* params, uint8_t index) {
38
+ uint pin = (uint)digitalPinToPinName (pin_nr); // we could check for -DBOARD_HAS_PIN_REMAP ?
34
39
gpio_set_function (pin, GPIO_FUNC_PWM);
35
40
uint slice = pwm_gpio_to_slice_num (pin);
36
41
uint chan = pwm_gpio_to_channel (pin);
@@ -45,7 +50,7 @@ void setupPWM(int pin, long pwm_frequency, bool invert, RP2040DriverParams* para
45
50
uint32_t wrapvalue = (sysclock_hz * 8 ) / div / pwm_frequency - 1 ;
46
51
#ifdef SIMPLEFOC_DEBUG_RP2040
47
52
SimpleFOCDebug::print (" Configuring pin " );
48
- SimpleFOCDebug::print (pin);
53
+ SimpleFOCDebug::print (( int ) pin);
49
54
SimpleFOCDebug::print (" slice " );
50
55
SimpleFOCDebug::print ((int )slice);
51
56
SimpleFOCDebug::print (" channel " );
0 commit comments