Browse Source

SelfTest 동작 오류 수정

PYJ 5 years ago
parent
commit
f12cbdc8ad
4 changed files with 16 additions and 19 deletions
  1. 5 11
      Bluecell_Src/Bluecell_operate.c
  2. 1 1
      Bluecell_Src/uart.c
  3. 2 0
      Inc/main.h
  4. 8 7
      Src/main.c

+ 5 - 11
Bluecell_Src/Bluecell_operate.c

@@ -154,7 +154,7 @@ bool Initialize;
154
 bool AGC_AlarmSet[AGC_Alarm_DL_Index_MAX];
154
 bool AGC_AlarmSet[AGC_Alarm_DL_Index_MAX];
155
 uint8_t FRBT_Day_Inc;
155
 uint8_t FRBT_Day_Inc;
156
 uint16_t ADC3Ret[5];
156
 uint16_t ADC3Ret[5];
157
-uint8_t LED_TestCnt;
157
+volatile uint8_t LED_TestCnt = 0;
158
 uint8_t TxData[2048];
158
 uint8_t TxData[2048];
159
 
159
 
160
 
160
 
@@ -275,7 +275,7 @@ void Booting_LedInit(void){
275
 
275
 
276
 void Boot_LED_Toggle(void){
276
 void Boot_LED_Toggle(void){
277
   if(bluecell_Currdatastatus.LED_TEST == false){
277
   if(bluecell_Currdatastatus.LED_TEST == false){
278
-      if(LedTimerCnt > 1000){
278
+      if(LedTimerCnt > 500){
279
         HAL_GPIO_TogglePin(BOOT_LED_GPIO_Port,BOOT_LED_Pin);
279
         HAL_GPIO_TogglePin(BOOT_LED_GPIO_Port,BOOT_LED_Pin);
280
         HAL_GPIO_TogglePin(LED_ACT_GPIO_Port,LED_ACT_Pin);
280
         HAL_GPIO_TogglePin(LED_ACT_GPIO_Port,LED_ACT_Pin);
281
     //    if(AlarmTimerOnCnt > 3000){
281
     //    if(AlarmTimerOnCnt > 3000){
@@ -2402,10 +2402,7 @@ bool Bluecell_Operate(uint8_t* data){
2402
             Bluecell_DataInit();
2402
             Bluecell_DataInit();
2403
             HAL_Delay(10);
2403
             HAL_Delay(10);
2404
             Bluecell_AttenInitialize();
2404
             Bluecell_AttenInitialize();
2405
-              if (HAL_IWDG_Init(&hiwdg) != HAL_OK)
2406
-              {
2407
-                Error_Handler();
2408
-              }            
2405
+
2409
             Initialize = true;
2406
             Initialize = true;
2410
         }
2407
         }
2411
         DataStatusSet();
2408
         DataStatusSet();
@@ -4575,10 +4572,7 @@ bool MBIC_Operate(uint8_t* data){
4575
             Bluecell_DataInit();
4572
             Bluecell_DataInit();
4576
             Bluecell_AttenInitialize();
4573
             Bluecell_AttenInitialize();
4577
             Initialize = true;
4574
             Initialize = true;
4578
-          if (HAL_IWDG_Init(&hiwdg) != HAL_OK)
4579
-          {
4580
-            Error_Handler();
4581
-          }
4575
+
4582
         }
4576
         }
4583
         HFR_TypeInit();        
4577
         HFR_TypeInit();        
4584
         data[MBIC_CMD_0] = 0x80;//MBIC_ERRRESPONSE;
4578
         data[MBIC_CMD_0] = 0x80;//MBIC_ERRRESPONSE;
@@ -7419,7 +7413,7 @@ void SelfTest_TimerOff(uint8_t num,uint8_t* selftest){
7419
     uint16_t Pin = 0;
7413
     uint16_t Pin = 0;
7420
     GPIO_TypeDef *_Port = 0;
7414
     GPIO_TypeDef *_Port = 0;
7421
     uint16_t _Pin = 0;   
7415
     uint16_t _Pin = 0;   
7422
-    if((*selftest) == false && SelfTestLifeCnt[num] < MBIC_RECOVERY_LAST_SHUTDOWN_MAINTAIN_SEC){
7416
+    if((*selftest) == false || SelfTestLifeCnt[num] < MBIC_RECOVERY_SELFTEST_TIMER_SEC){
7423
         return;
7417
         return;
7424
     }
7418
     }
7425
     switch(num){
7419
     switch(num){

+ 1 - 1
Bluecell_Src/uart.c

@@ -98,7 +98,7 @@ void GetDataFromUartQueue(UART_HandleTypeDef *huart)
98
     pQueue->data--;
98
     pQueue->data--;
99
     
99
     
100
     if(pQueue->data == 0){
100
     if(pQueue->data == 0){
101
-	HAL_IWDG_Refresh(&hiwdg);
101
+
102
 //        printf("data cnt zero !!!  \r\n");
102
 //        printf("data cnt zero !!!  \r\n");
103
         //RF_Ctrl_Main(&uart_buf[Header]);
103
         //RF_Ctrl_Main(&uart_buf[Header]);
104
 //        HAL_UART_Transmit(dst, &temp_buf[BLUECELL_HEADER00], 11, 3000);
104
 //        HAL_UART_Transmit(dst, &temp_buf[BLUECELL_HEADER00], 11, 3000);

+ 2 - 0
Inc/main.h

@@ -186,6 +186,8 @@ extern I2C_HandleTypeDef hi2c2;
186
 #define MBIC_ON_SHUTDOWN_MAINTAIN_SEC 5000//5
186
 #define MBIC_ON_SHUTDOWN_MAINTAIN_SEC 5000//5
187
 #define MBIC_RECOVERY_SHUTDOWN_MAINTAIN_SEC 30000//30
187
 #define MBIC_RECOVERY_SHUTDOWN_MAINTAIN_SEC 30000//30
188
 #define MBIC_RECOVERY_LAST_SHUTDOWN_MAINTAIN_SEC 60000 * 5 //5min
188
 #define MBIC_RECOVERY_LAST_SHUTDOWN_MAINTAIN_SEC 60000 * 5 //5min
189
+#define MBIC_RECOVERY_SELFTEST_TIMER_SEC (60000 * 30) //30min
190
+
189
 
191
 
190
 
192
 
191
 #define MBIC_OFF_MAINTAIN_SEC 10000
193
 #define MBIC_OFF_MAINTAIN_SEC 10000

+ 8 - 7
Src/main.c

@@ -290,7 +290,7 @@ int main(void)
290
   Flash_InitRead();
290
   Flash_InitRead();
291
   Booting_LedInit();
291
   Booting_LedInit();
292
   InitUartQueue(&TerminalQueue);
292
   InitUartQueue(&TerminalQueue);
293
-
293
+  bluecell_Currdatastatus.LED_TEST = true;
294
 
294
 
295
 
295
 
296
 #if 1 // PYJ.2020.05.06_BEGIN --
296
 #if 1 // PYJ.2020.05.06_BEGIN --
@@ -320,6 +320,7 @@ int main(void)
320
     Alarm_Check();     /*Function to check all alarm status variables*/
320
     Alarm_Check();     /*Function to check all alarm status variables*/
321
     FRBT_Operate();
321
     FRBT_Operate();
322
     SelfTestTimer_Operate();
322
     SelfTestTimer_Operate();
323
+    HAL_IWDG_Refresh(&hiwdg);
323
     /* USER CODE END WHILE */
324
     /* USER CODE END WHILE */
324
 
325
 
325
     /* USER CODE BEGIN 3 */
326
     /* USER CODE BEGIN 3 */
@@ -604,13 +605,13 @@ static void MX_IWDG_Init(void)
604
   hiwdg.Instance = IWDG;
605
   hiwdg.Instance = IWDG;
605
   hiwdg.Init.Prescaler = IWDG_PRESCALER_128;
606
   hiwdg.Init.Prescaler = IWDG_PRESCALER_128;
606
   hiwdg.Init.Reload = 4095;
607
   hiwdg.Init.Reload = 4095;
607
-#if 1  
608
-//  if (HAL_IWDG_Init(&hiwdg) != HAL_OK)
609
-//  {
610
-//    Error_Handler();
611
-//  }
608
+
609
+  if (HAL_IWDG_Init(&hiwdg) != HAL_OK)
610
+  {
611
+    Error_Handler();
612
+  }
612
   /* USER CODE BEGIN IWDG_Init 2 */
613
   /* USER CODE BEGIN IWDG_Init 2 */
613
-#endif
614
+
614
   /* USER CODE END IWDG_Init 2 */
615
   /* USER CODE END IWDG_Init 2 */
615
 
616
 
616
 }
617
 }