Skip to content

Commit b2da2b9

Browse files
author
Richard Unger
committed
respect pin nrs on boards which remap them
1 parent 3bcb9af commit b2da2b9

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/drivers/hardware_specific/rp2040/rp2040_mcu.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
/**
33
* Support for the RP2040 MCU, as found on the Raspberry Pi Pico.
44
*/
5+
6+
#include "./rp2040_mcu.h"
7+
8+
59
#if defined(TARGET_RP2040)
610

711

@@ -13,9 +17,9 @@
1317
#define SIMPLEFOC_DEBUG_RP2040
1418

1519
#include "../../hardware_api.h"
16-
#include "./rp2040_mcu.h"
1720
#include "hardware/pwm.h"
1821
#include "hardware/clocks.h"
22+
#include <pinDefinitions.h>
1923

2024
#define _PWM_FREQUENCY 24000
2125
#define _PWM_FREQUENCY_MAX 66000
@@ -30,7 +34,8 @@ uint16_t wrapvalues[NUM_PWM_SLICES];
3034

3135
// TODO add checks which channels are already used...
3236

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 ?
3439
gpio_set_function(pin, GPIO_FUNC_PWM);
3540
uint slice = pwm_gpio_to_slice_num(pin);
3641
uint chan = pwm_gpio_to_channel(pin);
@@ -45,7 +50,7 @@ void setupPWM(int pin, long pwm_frequency, bool invert, RP2040DriverParams* para
4550
uint32_t wrapvalue = (sysclock_hz * 8) / div / pwm_frequency - 1;
4651
#ifdef SIMPLEFOC_DEBUG_RP2040
4752
SimpleFOCDebug::print("Configuring pin ");
48-
SimpleFOCDebug::print(pin);
53+
SimpleFOCDebug::print((int)pin);
4954
SimpleFOCDebug::print(" slice ");
5055
SimpleFOCDebug::print((int)slice);
5156
SimpleFOCDebug::print(" channel ");

0 commit comments

Comments
 (0)