Просмотр исходного кода

1,踏频、车速检测正常;
2,电机运转正常;
3,尾灯控制正常,灯压可调,前灯与SWD复用未测;
4,BAT灯PWM正常输出,但输出电压不可控;
5,ACC和Key开关机正常。

Deyauo 5 месяцев назад
Родитель
Сommit
0f3569845b

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
.launches/empty_LP_MSPM0G3507_APP_Normal_20250107.launch


+ 1 - 1
3.BasicFunction/Include/bikelight.h

@@ -28,7 +28,7 @@ typedef _Bool  BOOL;
 #endif
 
 
-#define    BIKELEDOPEN_F_ENABLE    1  //灯使能,0-失能,1-使能
+#define    BIKELEDOPEN_F_ENABLE    1  //BAT灯使能,0-失能,1-使能
 #define    BIKELEDOPEN_R_ENABLE    0  //尾灯使能,0-失能,1-使能
 
 

+ 60 - 46
3.BasicFunction/Source/bikelight.c

@@ -405,7 +405,7 @@ void bikelight_voBikeLightCoef(UWORD volt)
        IO_LED1_6or12V_Choise_L();//6V输出使能
     }
     //DC2灯电压设置
-    if( BikeLedCheck_DC_1.uwBike_LedVolt == 12) //拉低短路
+    if( BikeLedCheck_DC_2.uwBike_LedVolt == 12) //拉低短路
     {
         IO_LED2_6or12V_Choise_H(); //12V使能
     }
@@ -427,10 +427,10 @@ void bikelight_voBikeLightCoef(UWORD volt)
 ****************************************************************/
 void bikelight_voBikeLightControl(UWORD switchAction, BOOL Brate_Sta )
 {
-    if( power_stPowStateOut.blPowerStartupFlg  ==FALSE)
+    if( power_stPowStateOut.blPowerStartupFlg == FALSE)
     {
         BikeLedCheck_F.blBike_LedSta=FALSE;
-        DL_TimerG_setCaptureCompareValue(PWM_F_INST,   0, GPIO_PWM_F_C1_IDX);//max=2304
+        DL_TimerG_setCaptureCompareValue(PWM_F_INST, 0, GPIO_PWM_F_C1_IDX);//max=2304
     }
     else
     {
@@ -455,49 +455,63 @@ void bikelight_voBikeLightControl(UWORD switchAction, BOOL Brate_Sta )
             IO_LED2_6or12V_EN_L();
         }
         //BAT灯控制
-        #if(BIKELEDOPEN_F_ENABLE!=0)
+#if 1
+        ledfunctions[BikeLedCheck_F.uwBike_LedMode](&BikeLedCheck_F);
+        if (BikeLedCheck_F.blBike_LedSta == TRUE)
+        {
+            DL_TimerG_startCounter(PWM_F_INST);
+            BikeLedCheck_F.uwBikeLight_PWM = 1500;
+            DL_TimerG_setCaptureCompareValue(PWM_F_INST, BikeLedCheck_F.uwBikeLight_PWM, GPIO_PWM_F_C1_IDX);
+        }
+        else
+        {
+            BikeLedCheck_F.uwBikeLight_PWM = 0;
+            DL_TimerG_setCaptureCompareValue(PWM_F_INST, BikeLedCheck_F.uwBikeLight_PWM, GPIO_PWM_F_C1_IDX);
+            DL_TimerG_stopCounter(PWM_F_INST);
+        }
+#elif(BIKELEDOPEN_F_ENABLE != 0)
         ledfunctions[BikeLedCheck_F.uwBike_LedMode](&BikeLedCheck_F);
         if (BikeLedCheck_F.blBike_LedSta == TRUE)
         {
-            if(BikeLedCheck_F.uwBike_keyLedHighSta==0)
+            if(BikeLedCheck_F.uwBike_keyLedHighSta == 0)
             {
-                BikeLedCheck_F.uwBike_keyLedHighSta=1;
-                BikeLedCheck_F.uwBike_OpenLedEn=0;//开灯瞬间处理标志
-                BikeLedCheck_F.uwBike_LedOffErrCnt=0;  //10秒一检测计时
-                BikeLedCheck_F.uwBike_OpenPreTime=0; //开灯瞬间5ms内处理计数
-                BikeLedCheck_F.uwBike_LedCheckLowTime=0;//检测过流IO出现低电平次数
-                BikeLedCheck_F.blBike_ForwardLedStart=TRUE; //前灯允许开灯启动,总开关
-                BikeLedCheck_F.blBike_LedCurErr=FALSE;
+                BikeLedCheck_F.uwBike_keyLedHighSta = 1;
+                BikeLedCheck_F.uwBike_OpenLedEn = 0;          //开灯瞬间处理标志
+                BikeLedCheck_F.uwBike_LedOffErrCnt = 0;       //10秒一检测计时
+                BikeLedCheck_F.uwBike_OpenPreTime = 0;        //开灯瞬间5ms内处理计数
+                BikeLedCheck_F.uwBike_LedCheckLowTime = 0;    //检测过流IO出现低电平次数
+                BikeLedCheck_F.blBike_ForwardLedStart = TRUE; //前灯允许开灯启动,总开关
+                BikeLedCheck_F.blBike_LedCurErr = FALSE;
                 DL_TimerG_startCounter(PWM_F_INST);
             }
-            if((BikeLedCheck_F.uwBike_OpenLedEn==0) &&(BikeLedCheck_F.blBike_ForwardLedStart==TRUE)) //开灯检测,过流后每隔10秒检测1次
+            if((BikeLedCheck_F.uwBike_OpenLedEn == 0) &&(BikeLedCheck_F.blBike_ForwardLedStart == TRUE)) //开灯检测,过流后每隔10秒检测1次
             {
-                LED_EnableDeal(&BikeLedCheck_F,1,F_PWM_byte);
+                LED_EnableDeal(&BikeLedCheck_F, 1 ,F_PWM_byte);
             }
-            BikeLedCheck_F.uwBike_keyLedLowSta=1;
+            BikeLedCheck_F.uwBike_keyLedLowSta = 1;
         }
         else
         {
-            BikeLedCheck_F.uwBike_keyLedHighSta=0;
-            if(BikeLedCheck_F.uwBike_keyLedLowSta!=0)
+            BikeLedCheck_F.uwBike_keyLedHighSta = 0;
+            if(BikeLedCheck_F.uwBike_keyLedLowSta != 0)
             {
-                BikeLedCheck_F.uwBike_keyLedLowSta=0;
-                BikeLedCheck_F.uwBikeLight_PWM=0;
+                BikeLedCheck_F.uwBike_keyLedLowSta = 0;
+                BikeLedCheck_F.uwBikeLight_PWM = 0;
                 DL_TimerG_setCaptureCompareValue(PWM_F_INST, BikeLedCheck_F.uwBikeLight_PWM, GPIO_PWM_F_C1_IDX);//max=2304
             }
         }
-        #endif
+#endif
 
         //BAT灯检测
-        if((BikeLedCheck_F.blBike_LedCurErr==TRUE )&&(BikeLedCheck_F.blBike_LedSta == TRUE))  //过流标志,前灯恢复检测
+        if((BikeLedCheck_F.blBike_LedCurErr == TRUE ) && (BikeLedCheck_F.blBike_LedSta == TRUE))  //过流标志,前灯恢复检测
         {
             BikeLedCheck_F.uwBike_LedOffErrCnt++;
-            if(BikeLedCheck_F.uwBike_LedOffErrCnt>2000) //1000ms
+            if(BikeLedCheck_F.uwBike_LedOffErrCnt > 2000) //1000ms
             {
-                BikeLedCheck_F.uwBike_keyLedHighSta=0;
-                BikeLedCheck_F.uwBike_LedOffErrCnt=0;
-                BikeLedCheck_F.blBike_LedCurErr=FALSE;
-                BikeLedCheck_F.blBike_ForwardLedStart=TRUE;//前灯允许开灯启动,总开关
+                BikeLedCheck_F.uwBike_keyLedHighSta = 0;
+                BikeLedCheck_F.uwBike_LedOffErrCnt = 0;
+                BikeLedCheck_F.blBike_LedCurErr = FALSE;
+                BikeLedCheck_F.blBike_ForwardLedStart = TRUE;//前灯允许开灯启动,总开关
             }
          }
         else
@@ -509,50 +523,50 @@ void bikelight_voBikeLightControl(UWORD switchAction, BOOL Brate_Sta )
 
 void LED_EnableDeal(BIKELEDCHECK_STR *p,UWORD switchAction,LED_PWM_STR mode )
 {
-    if(switchAction!=0)
+    if(switchAction != 0)
     {
-        if(p->uwBike_OpenPreTime<2000)
+        if(p->uwBike_OpenPreTime < 2000)
             p->uwBike_OpenPreTime++;
-        if(p->uwBike_OpenPreTime<=2)//2ms
+        if(p->uwBike_OpenPreTime <= 2)
         {
-            if(mode==F_PWM_byte)
+            if(mode == F_PWM_byte)
             {
-                p->uwBikeLight_PWM=LIGHT_FIRSTPWM;//
+                p->uwBikeLight_PWM = LIGHT_FIRSTPWM;
             }
             else
             {
-                p->uwBikeLight_PWM=LIGHTBLR_FIRSTPWM;//
+                p->uwBikeLight_PWM = LIGHTBLR_FIRSTPWM;
             }
         }
-        else if(p->uwBike_OpenPreTime<=3) //4
+        else if(p->uwBike_OpenPreTime <= 3)
         {
-            if((p->uwBike_OpenLedEn ==0)&&(p->blBike_LedCurErr==TRUE))
+            if((p->uwBike_OpenLedEn == 0)&&(p->blBike_LedCurErr == TRUE))
             {
-                p->uwBikeLight_PWM =LIGHT_SECTPWM ;//720;//
+                p->uwBikeLight_PWM = LIGHT_SECTPWM ;
             }
             else
             {
-                p->uwBikeLight_PWM=0;
+                p->uwBikeLight_PWM = 0;
             }
         }
-        if((p->uwBike_OpenPreTime>2) && (p->uwBikeLight_PWM!=0))// ||(p->uwBike_LedCheckLowTime>=2)
+        if((p->uwBike_OpenPreTime > 2) && (p->uwBikeLight_PWM != 0))
         {
-            p->blBike_LedCurErr=FALSE;
-            p->uwBike_OpenLedEn=1;
+            p->blBike_LedCurErr = FALSE;
+            p->uwBike_OpenLedEn = 1;
         }
-        if(p->uwBike_OpenLedEn!=0) //
+        if(p->uwBike_OpenLedEn != 0)
         {
-            p->uwBikeLight_PWM=LIGHT_MAXPWM;//
+            p->uwBikeLight_PWM = LIGHT_MAXPWM;
         }
     }
     else
     {
-        p->uwBikeLight_PWM=0;//
+        p->uwBikeLight_PWM = 0;
+    }
+    if(mode == F_PWM_byte)
+    {
+        DL_TimerG_setCaptureCompareValue(PWM_F_INST, p->uwBikeLight_PWM, GPIO_PWM_F_C1_IDX);//max=2304
     }
-    if(mode==F_PWM_byte)
-      {
-          DL_TimerG_setCaptureCompareValue(PWM_F_INST, p->uwBikeLight_PWM, GPIO_PWM_F_C1_IDX);//max=2304
-      }
 }
 
 /*************************************************************************

+ 4 - 2
m0g3507_int.c

@@ -1034,7 +1034,8 @@ void GROUP1_IRQHandler(void) //void TMR3_GLOBAL_IRQHandler(void)
     uint32_t gpioB = DL_GPIO_getEnabledInterruptStatus(GPIOB, DL_GPIO_PIN_3 | DL_GPIO_PIN_2);
 
     //BAT灯
-    if ((gpioA & DL_GPIO_PIN_15) ==  DL_GPIO_PIN_26)
+#if 0
+    if ((gpioA & DL_GPIO_PIN_26) ==  DL_GPIO_PIN_26)
     {
         if(BikeLedCheck_F.uwBike_OpenLedEn!=0)
         {
@@ -1056,8 +1057,9 @@ void GROUP1_IRQHandler(void) //void TMR3_GLOBAL_IRQHandler(void)
         if( BikeLedCheck_F.blBike_LedSta==TRUE)
             BikeLedCheck_F.blBike_LedCurErr=TRUE;
         CHMPF++;
-        DL_GPIO_clearInterruptStatus(GPIOB, DL_GPIO_PIN_15);
+        DL_GPIO_clearInterruptStatus(GPIOA, DL_GPIO_PIN_26);
     }
+#endif
 
    /* add user code begin TMR3_GLOBAL_IRQ 0 */
    if( ((gpioA & DL_GPIO_PIN_8) ==  DL_GPIO_PIN_8) || ((gpioB & DL_GPIO_PIN_3) ==  DL_GPIO_PIN_3) ||((gpioB & DL_GPIO_PIN_2) ==  DL_GPIO_PIN_2))

Некоторые файлы не были показаны из-за большого количества измененных файлов