/* * Copyright (c) 2006-2023, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2023-10-28 Wangyuqiang first version */ #include #include "pins_arduino.h" #include #include "hal_data.h" #include /* * {Arduino Pin, RT-Thread Pin [, Device Name, Channel]} * [] means optional * Digital pins must NOT give the device name and channel. * Analog pins MUST give the device name and channel(ADC, PWM or DAC). * Arduino Pin must keep in sequence. */ const pin_map_t pin_map_table[]= { {D0, BSP_IO_PORT_02_PIN_06, "uart4"}, /* Serial4-RX */ {D1, BSP_IO_PORT_02_PIN_05, "uart4"}, /* Serial4-TX */ {D2, BSP_IO_PORT_00_PIN_08}, {D3, BSP_IO_PORT_05_PIN_06}, {D4, BSP_IO_PORT_06_PIN_03}, {D5, BSP_IO_PORT_06_PIN_04, "pwm8", 0}, {D6, BSP_IO_PORT_06_PIN_05, "pwm8", 0}, {D7, BSP_IO_PORT_02_PIN_08}, {D8, BSP_IO_PORT_02_PIN_07}, {D9, BSP_IO_PORT_00_PIN_09}, {D10, BSP_IO_PORT_07_PIN_12, "pwm2", 0}, /* PWM */ {D11, BSP_IO_PORT_05_PIN_12, "pwm0", 0}, /* PWM */ {D12, BSP_IO_PORT_05_PIN_11}, {D13, BSP_IO_PORT_02_PIN_04}, {D14, BSP_IO_PORT_02_PIN_03, "i2c0"}, /* I2C-SDA (Soft Wire) */ {D15, BSP_IO_PORT_02_PIN_02, "i2c0"}, /* I2C-SCL (Soft Wire) */ {A0, BSP_IO_PORT_00_PIN_00, "adc0", 0}, /* ADC */ {A1, BSP_IO_PORT_00_PIN_01, "adc0", 1}, /* ADC */ {A2, BSP_IO_PORT_00_PIN_02, "adc0", 2}, /* ADC */ {A3, BSP_IO_PORT_00_PIN_03, "adc0", 7}, /* ADC */ {A4, BSP_IO_PORT_05_PIN_08, "adc0", 20}, /* ADC */ {A5, BSP_IO_PORT_00_PIN_14, "adc0", 5} /* ADC */ }; static ioport_instance_ctrl_t g_pwm_ioport_ctrl; static const ioport_pin_cfg_t g_pwm_pin_cfg_data[] = { { .pin = BSP_IO_PORT_05_PIN_12, .pin_cfg = ((uint32_t) IOPORT_CFG_PERIPHERAL_PIN | (uint32_t) IOPORT_PERIPHERAL_GPT1) }, }; static const ioport_cfg_t g_pwm_pin_cfg = { .number_of_pins = sizeof(g_pwm_pin_cfg_data)/sizeof(ioport_pin_cfg_t), .p_pin_cfg_data = &g_pwm_pin_cfg_data[0], }; void switchToPWM(const char *device_name) { if(!rt_strcmp(device_name, "pwm0")) { R_IOPORT_Open(&g_pwm_ioport_ctrl, &g_pwm_pin_cfg); LOG_I("D11 will switch from SPI to PWM"); } }