diff --git a/components/esp8266/driver/pwm.c b/components/esp8266/driver/pwm.c index 376aa756..73c3d0f8 100644 --- a/components/esp8266/driver/pwm.c +++ b/components/esp8266/driver/pwm.c @@ -514,7 +514,7 @@ static esp_err_t pwm_obj_free(void) return ESP_OK; } -static esp_err_t pwm_obj_malloc(uint32_t channel_num) +static esp_err_t pwm_obj_malloc(uint8_t channel_num) { pwm_obj = (pwm_obj_t *)heap_caps_malloc(sizeof(pwm_obj_t), MALLOC_CAP_8BIT); @@ -539,7 +539,7 @@ static esp_err_t pwm_obj_malloc(uint32_t channel_num) return ESP_OK; } -esp_err_t pwm_init(uint32_t period, uint32_t *duties, uint32_t channel_num, const uint32_t *pin_num) +esp_err_t pwm_init(uint32_t period, uint32_t *duties, uint8_t channel_num, const uint32_t *pin_num) { PWM_CHECK(pwm_obj == NULL, "pwm has been initialized", ESP_FAIL); PWM_CHECK(channel_num <= MAX_PWM_CHANNEL, "Channel num out of range", ESP_ERR_INVALID_ARG); diff --git a/components/esp8266/include/driver/pwm.h b/components/esp8266/include/driver/pwm.h index cc1f643c..c457ba91 100644 --- a/components/esp8266/include/driver/pwm.h +++ b/components/esp8266/include/driver/pwm.h @@ -27,7 +27,7 @@ extern "C" { * @param period PWM period, unit: us. * e.g. For 1KHz PWM, period is 1000 us. Do not set the period below 20us. * @param duties duty cycle of each channels. - * @param pwm_channel_num PWM channel number, maximum is 8 + * @param channel_num PWM channel number, maximum is 8 * @param pin_num GPIO number of PWM channel * * @return @@ -35,7 +35,7 @@ extern "C" { * - ESP_ERR_INVALID_ARG Parameter error * - ESP_FAIL Init error */ -esp_err_t pwm_init(uint32_t period, uint32_t *duties, uint32_t pwm_channel_num, const uint32_t *pin_num); +esp_err_t pwm_init(uint32_t period, uint32_t *duties, uint8_t channel_num, const uint32_t *pin_num); /** * @brief PWM function uninstall diff --git a/examples/peripherals/pwm/README.md b/examples/peripherals/pwm/README.md index 91df1ad2..c073186b 100644 --- a/examples/peripherals/pwm/README.md +++ b/examples/peripherals/pwm/README.md @@ -47,7 +47,7 @@ I (220) gpio: GPIO[12]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldo I (225) gpio: GPIO[13]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 I (247) gpio: GPIO[14]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 I (251) gpio: GPIO[15]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 -I (265) pwm: --- PWM v3.0 +I (265) pwm: --- PWM v3.2 I (20276) main: PWM stop diff --git a/examples/peripherals/pwm/main/pwm_example_main.c b/examples/peripherals/pwm/main/pwm_example_main.c index 989b4648..e7f1df5d 100644 --- a/examples/peripherals/pwm/main/pwm_example_main.c +++ b/examples/peripherals/pwm/main/pwm_example_main.c @@ -30,8 +30,8 @@ #define PWM_2_OUT_IO_NUM 14 #define PWM_3_OUT_IO_NUM 15 -// PWM period 500us(2Khz), same as depth -#define PWM_PERIOD (500) +// PWM period 1000us(1Khz), same as depth +#define PWM_PERIOD (1000) static const char *TAG = "pwm_example"; @@ -45,7 +45,7 @@ const uint32_t pin_num[4] = { // duties table, real_duty = duties[x]/PERIOD uint32_t duties[4] = { - 250, 250, 250, 250, + 500, 500, 500, 500, }; // phase table, delay = (phase[x]/360)*PERIOD diff --git a/examples/peripherals/pwm/wave.png b/examples/peripherals/pwm/wave.png index a7ace1e4..7c52a98b 100644 Binary files a/examples/peripherals/pwm/wave.png and b/examples/peripherals/pwm/wave.png differ