From 3f6770b2b1fbe2b8258281e8ffde65fd4cb8bec4 Mon Sep 17 00:00:00 2001 From: MacRsh Date: Tue, 16 Jan 2024 04:14:33 +0800 Subject: [PATCH] =?UTF-8?q?1.CH32=E9=A9=B1=E5=8A=A8=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=EF=BC=8C=E6=96=B0=E5=A2=9E=E7=A1=AC=E4=BB=B6=E5=BB=B6=E8=BF=9F?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E3=80=82=202.CH32=E9=A9=B1=E5=8A=A8=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=EF=BC=8CPWM=E9=80=9A=E9=81=93=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E5=88=9D=E5=80=BC=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/wch/driver/drv_pwm.c | 4 ++++ bsp/wch/driver/mr_board.c | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 bsp/wch/driver/mr_board.c diff --git a/bsp/wch/driver/drv_pwm.c b/bsp/wch/driver/drv_pwm.c index 2a91e59..e42942c 100644 --- a/bsp/wch/driver/drv_pwm.c +++ b/bsp/wch/driver/drv_pwm.c @@ -193,6 +193,7 @@ static int drv_pwm_channel_configure(struct mr_pwm *pwm, int channel, int state, GPIO_Init(pwm_data->ch1_port, &GPIO_InitStructure); TIM_OC1Init(pwm_data->instance, &TIM_OCInitStructure); TIM_OC1PreloadConfig(pwm_data->instance, state ? TIM_OCPreload_Enable : TIM_OCPreload_Disable); + TIM_SetCompare1(pwm_data->instance, 0); return MR_EOK; } case 2: @@ -201,6 +202,7 @@ static int drv_pwm_channel_configure(struct mr_pwm *pwm, int channel, int state, GPIO_Init(pwm_data->ch2_port, &GPIO_InitStructure); TIM_OC2Init(pwm_data->instance, &TIM_OCInitStructure); TIM_OC2PreloadConfig(pwm_data->instance, state ? TIM_OCPreload_Enable : TIM_OCPreload_Disable); + TIM_SetCompare2(pwm_data->instance, 0); return MR_EOK; } case 3: @@ -209,6 +211,7 @@ static int drv_pwm_channel_configure(struct mr_pwm *pwm, int channel, int state, GPIO_Init(pwm_data->ch3_port, &GPIO_InitStructure); TIM_OC3Init(pwm_data->instance, &TIM_OCInitStructure); TIM_OC3PreloadConfig(pwm_data->instance, state ? TIM_OCPreload_Enable : TIM_OCPreload_Disable); + TIM_SetCompare3(pwm_data->instance, 0); return MR_EOK; } case 4: @@ -217,6 +220,7 @@ static int drv_pwm_channel_configure(struct mr_pwm *pwm, int channel, int state, GPIO_Init(pwm_data->ch4_port, &GPIO_InitStructure); TIM_OC4Init(pwm_data->instance, &TIM_OCInitStructure); TIM_OC4PreloadConfig(pwm_data->instance, state ? TIM_OCPreload_Enable : TIM_OCPreload_Disable); + TIM_SetCompare4(pwm_data->instance, 0); return MR_EOK; } diff --git a/bsp/wch/driver/mr_board.c b/bsp/wch/driver/mr_board.c new file mode 100644 index 0000000..e2c9b96 --- /dev/null +++ b/bsp/wch/driver/mr_board.c @@ -0,0 +1,19 @@ +/* + * @copyright (c) 2023-2024, MR Development Team + * + * @license SPDX-License-Identifier: Apache-2.0 + * + * @date 2024-01-16 MacRsh First version + */ + +#include "mr_board.h" + +void mr_delay_us(uint32_t us) +{ + Delay_Us(us); +} + +void mr_delay_ms(uint32_t ms) +{ + Delay_Ms(ms); +}