修复空调不动作的问题

This commit is contained in:
flym 2026-05-21 04:03:53 +08:00
parent b3a97e0a7e
commit 9add3e7437
11 changed files with 29555 additions and 29543 deletions

View File

@ -60,6 +60,13 @@ void kt_boot_init(void)
gpio_set_die(KT_CFG_LR_FAN_PIN, 1);
gpio_set_direction(KT_CFG_LR_FAN_PIN, 0);
gpio_set_output_value(KT_CFG_LR_FAN_PIN, 0);
// 初始化GPIO Air Cond
gpio_set_pull_down(KT_CFG_AIR_COND_PIN, 0);
gpio_set_pull_up(KT_CFG_AIR_COND_PIN, 0);
gpio_set_die(KT_CFG_AIR_COND_PIN, 1);
gpio_set_direction(KT_CFG_AIR_COND_PIN, 0);
gpio_set_output_value(KT_CFG_AIR_COND_PIN, 0);
}
static u16 vbus_timer = 0;
static u8 vbus_high_cnt = 0;

View File

@ -41,7 +41,7 @@
*/
#define KT_CFG_AIR_COND_PIN IO_PORTA_11 //空调控制
#define KT_CFG_AIR_COND_PIN IO_PORTB_09 //空调控制
/* LED 语音 数码管不显示,但是激活电量显示
->->

View File

@ -21,7 +21,7 @@ static _kt_fan_ac_var kt_fan_ac_var;
#define KT_AC_BURST_MS 1000 /* AC1 断续1s 开 / 1s 关 */
/* 1: 上电即输出不同占空比,便于示波器/万用表区分各路;量产改 0 */
#define KT_PWM_BOOT_TEST_EN 1
#define KT_PWM_BOOT_TEST_EN 0
const u32 fan_level_duty[7] = {0, 1500, 4000, 6000, 7000, 8000, 9500};
@ -46,7 +46,7 @@ static void kt_ac_burst_stop(void)
static void kt_ac_pwm_output(u16 duty)
{
set_timer_pwm_duty(JL_TIMER0, duty);
mcpwm_set_duty(pwm_ch3, pwm_timer3, duty);
}
static void kt_ac_burst_cb(void *priv)
@ -90,7 +90,7 @@ void kt_fan_ac_init(void)
* PB5 : MCPWM CH0 + output_channel 0
* PB6 : MCPWM CH2 L
* PA10: MCPWM CH4 L
* PA11 : Timer0 + CH0_T0_PWM_OUTCH3 output_channel
* PB9 : MCPWM CH3 H 100kHz
*/
#if KT_PWM_BOOT_TEST_EN
/* 前15% / 后40% / 左右60% / 空调80%,上电即可区分四路 */
@ -141,12 +141,20 @@ void kt_fan_ac_init(void)
pwm_p_data.complementary_en = 0;
mcpwm_init(&pwm_p_data);
/* 空调 PA11 */
timer_pwm_init(JL_TIMER0, KT_AC_PWM_FREQ, 0, KT_CFG_AIR_COND_PIN, CH0_T0_PWM_OUT);
/* 空调 PB9 */
pwm_p_data.pwm_aligned_mode = pwm_edge_aligned;
pwm_p_data.frequency = KT_AC_PWM_FREQ;
pwm_p_data.pwm_ch_num = pwm_ch3;
pwm_p_data.pwm_timer_num = pwm_timer3;
pwm_p_data.duty = 0;
pwm_p_data.h_pin = KT_CFG_AIR_COND_PIN;
pwm_p_data.l_pin = -1;
pwm_p_data.complementary_en = 0;
mcpwm_init(&pwm_p_data);
kt_ac_apply_mode();
#if KT_PWM_BOOT_TEST_EN
printf("PWM boot test: PB5=%u%% PB6=%u%% PA10=%u%% PA11=AC%d\n",
printf("PWM boot test: PB5=%u%% PB6=%u%% PA10=%u%% PB9=AC%d\n",
fan_level_duty[__this->front_fan_level] / 100,
fan_level_duty[__this->rear_fan_level] / 100,
fan_level_duty[__this->lr_fan_level] / 100,

Binary file not shown.

View File

@ -1726,8 +1726,6 @@ objs/apps/kaotings/kt_led7.c.o
objs/apps/kaotings/kt_fan_ac.c.o
-r=objs/apps/kaotings/kt_fan_ac.c.o,kt_fan_ac_init,pl
-r=objs/apps/kaotings/kt_fan_ac.c.o,mcpwm_init,l
-r=objs/apps/kaotings/kt_fan_ac.c.o,timer_pwm_init,l
-r=objs/apps/kaotings/kt_fan_ac.c.o,printf,l
-r=objs/apps/kaotings/kt_fan_ac.c.o,kt_fan_level_tone_play,pl
-r=objs/apps/kaotings/kt_fan_ac.c.o,sprintf,l
-r=objs/apps/kaotings/kt_fan_ac.c.o,kt_led7_show_string,l
@ -1736,7 +1734,6 @@ objs/apps/kaotings/kt_fan_ac.c.o
-r=objs/apps/kaotings/kt_fan_ac.c.o,mcpwm_set_duty,l
-r=objs/apps/kaotings/kt_fan_ac.c.o,sys_timer_add,l
-r=objs/apps/kaotings/kt_fan_ac.c.o,sys_timer_del,l
-r=objs/apps/kaotings/kt_fan_ac.c.o,set_timer_pwm_duty,l
-r=objs/apps/kaotings/kt_fan_ac.c.o,fan_level_duty,pl
-r=objs/apps/kaotings/kt_fan_ac.c.o,front_fan_level_tone,pl
-r=objs/apps/kaotings/kt_fan_ac.c.o,rear_fan_level_tone,pl

File diff suppressed because it is too large Load Diff