将充电灯改为呼吸灯,并在充满后长亮一段时间,再呼吸灭 |
您所在的位置:网站首页 › switch开箱流程 › 将充电灯改为呼吸灯,并在充满后长亮一段时间,再呼吸灭 |
实现:充电的时候,灯控为呼吸灯,在充满电之后,维持长亮一段时间,维持时间结束,耳机再呼吸灭。具体实现如下: 首先创建一个全局变量用于控制呼吸灯: func_bt.c下 u16 charge_breath_flag = 0;//控制充满电呼吸灯func_bt.h下 extern u16 charge_breath_flag;//控制充满电呼吸灯之后就是修改充电的灯: bsp_charge.c下bsp_charge_box_process_do()中 #if LED_BREATHE_EN if (xcfg_cb.charge_breathe_en) { //充电过程中红蓝呼吸灯功能 if(sys_cb.charge_sta == 1)//充电中,呼吸亮 { charge_breath_flag = 0; breathe_led_start(0, 0); } else//充满电 { if((charge_breath_flag breathe_led_stop(); } } } #endif //还需要注意: if (((bsp_charge_box_sta() == 2) || (vhouse_sta == 2) || (sys_cb.ntc_2_pwrdwn_flag))&&(charge_breath_flag >= 2047)) //是否充满或NTC关机 { bsp_charge_inbox_wakeup_enable(); //INBOX Wakeup enable saradc_exit(adc_cb.channel); bsp_charge_tebcnt_calibration_stop(); sfunc_pwrdown(0); } if (!CHARGE_DC_IN()) { //DC IN online? charge_breath_flag = 0; led_func_enable(); //打开现有LED扫描控制 ...... } else { led_func_disable(); //关掉现有LED扫描控制 ...... }另外耳机充满电的时候,系统等到呼吸灯结束再关闭: bsp_bt.c下bsp_bt_tws_switch_for_charge()的while循环中: if ((bsp_charge_box_process())&&(charge_breath_flag >= 2047)) { break; }接下来就是呼吸灯里面的修改: port_breathe_led.c下breathe_led_timer2_isr()中: if(bre_led_cb.count == bre_led_cb.pwm_level){ //呼吸灯调节参数 if((charge_breath_flag >= 1)&&(charge_breath_flag bre_led_cb.time = 0; bre_led_cb.duty = bre_led_cb.pwm_level / 2; } } if((bre_led_cb.dir == 0)&&(charge_breath_flag ==0)) {//还没有充满的时候得呼吸亮,充满之后就不能呼吸亮 bre_led_cb.time++; if(bre_led_cb.time == bre_led_cb.pwm_time){ bre_led_cb.time = 0; bre_led_cb.duty++; if(bre_led_cb.duty >= (bre_led_cb.pwm_level / 2)){ bre_led_cb.dir = 1; } } } if((bre_led_cb.dir == 1)||(charge_breath_flag == 2046)) {//长亮之后的呼吸灭 bre_led_cb.time++; if(bre_led_cb.time == bre_led_cb.pwm_time){ bre_led_cb.time = 0; bre_led_cb.duty--; if(bre_led_cb.duty //呼吸灭之后,就得进入低功耗 charge_breath_flag = 2047; } bre_led_cb.dir = 0; bre_led_cb.toggle ^= 1; } } } }还不清楚的小伙伴可以添加我的个人微信 lqy—1997 (中间是三个英文的杠)进行交流。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |