Selaa lähdekoodia

Data init 시 Det Length 와 Ref 값 넣도록 수정

PYJ 5 vuotta sitten
vanhempi
commit
c83297c51a
3 muutettua tiedostoa jossa 42 lisäystä ja 27 poistoa
  1. 40 27
      Bluecell_Src/Bluecell_operate.c
  2. 1 0
      Bluecell_Src/eeprom.c
  3. 1 0
      Src/main.c

+ 40 - 27
Bluecell_Src/Bluecell_operate.c

@@ -425,18 +425,19 @@ ATT_TABLE_st Atten_Table_ref[Table_ATT_Ref_Index_MAX] = {
425 425
 }
426 426
 #endif // PYJ.2020.06.29_END -- 
427 427
 
428
-#define TableDataSetting_ATT_DL_STEP 0.5 * 10
429
-#define TableDataSetting_ATT_UL_STEP 0.5 * 10
430
-#define TableDataSetting_ATT_DL_LEVEL_STEP 1 * 10
431
-#define TableDataSetting_ATT_UL_LEVEL_STEP 1 * 10
432
-#define TableDataSetting_ATT_DL_TEMP_STEP 5 * 10
433
-#define TableDataSetting_ATT_UL_TEMP_STEP 5 * 10
428
+#define TableDataSetting_ATT_DL_STEP 0.5 
429
+#define TableDataSetting_ATT_UL_STEP 0.5 
430
+#define TableDataSetting_ATT_DL_LEVEL_STEP -1 
431
+#define TableDataSetting_ATT_UL_LEVEL_STEP -1 
432
+#define TableDataSetting_ATT_DL_TEMP_STEP -5 
433
+#define TableDataSetting_ATT_UL_TEMP_STEP -5 
434 434
 
435 435
 void Table_DataSetting(int8_t* pdata,int8_t RefData,double step,uint8_t size){
436
-    step /= 10;
436
+//    step /= 10;
437 437
     for(int i =0; i < size; i++){
438 438
         pdata[i] = RefData;
439
-        RefData -= step; 
439
+        printf("pdata[%d] %d \r\n",i,pdata[i]);
440
+        RefData += step; 
440 441
     }
441 442
 }
442 443
 void Table_Init(){
@@ -5554,17 +5555,16 @@ double AGC_AutoControl_ADC_Compare(double CurrentAdc,uint8_t* CompareAdc,uint8_t
5554 5555
     uint8_t dot = 0;
5555 5556
     double Lastdata = 0;
5556 5557
     double Compare_Data = 0;
5557
-    double first_data = CompareAdc[0] << 8 | CompareAdc[1];
5558
-    for(int i =0; i < size / 2; i++){
5559
-        TableAdc = CompareAdc[i * 2] << 8;
5560
-        TableAdc += CompareAdc[i * 2 + 1];
5561
-        TableAdc /= 1000;
5558
+    double first_data = (((CompareAdc[0] << 8) | CompareAdc[1]) * 0.001);
5559
+    for(int i =0; i < size; i++){
5560
+        TableAdc = (((CompareAdc[i * 2] << 8) | CompareAdc[i * 2 + 1]) * 0.001);
5562 5561
         Lastdata = TableAdc;
5563 5562
         
5564 5563
         NextTableAdc = CompareAdc[i * 2 + 2] << 8;
5565 5564
         NextTableAdc += CompareAdc[i * 2 + 3];
5566 5565
         NextTableAdc /= 1000;        
5567 5566
 //        printf("TableAdc[%d] : %f \r\n",i,TableAdc);
5567
+        Vitual_array[0] = TableAdc;
5568 5568
 //        CurrRet = TableAdc - CurrentAdc;
5569 5569
         if(TableAdc >= NextTableAdc){
5570 5570
             step = (TableAdc - NextTableAdc)* 0.1;
@@ -5572,14 +5572,16 @@ double AGC_AutoControl_ADC_Compare(double CurrentAdc,uint8_t* CompareAdc,uint8_t
5572 5572
             step = (NextTableAdc - TableAdc) * 0.1;
5573 5573
         }
5574 5574
         for(int a = 0; a < 10; a++){
5575
-            Vitual_array[a] = TableAdc - (step * a);
5576
-            if(Vitual_array[a] >= CurrentAdc){
5577
-                CurrRet = Vitual_array[a] - CurrentAdc;
5578
-            }else{
5579
-                CurrRet = CurrentAdc - Vitual_array[a];
5580
-            }
5575
+                if(size - 1 != i){
5576
+                    Vitual_array[a] = TableAdc - (step * a);
5577
+                }
5578
+                if(Vitual_array[a] >= CurrentAdc){
5579
+                    CurrRet = Vitual_array[a] - CurrentAdc;
5580
+                }else{
5581
+                    CurrRet = CurrentAdc - Vitual_array[a];
5582
+                }
5581 5583
 //            CurrRet = (Vitual_array[a]) - (CurrentAdc);
5582
-//            printf("Vitual_array[%d] : %f \r\n",a,Vitual_array[a]);
5584
+//                printf("Vitual_array[%d] : %f  ERROR RATE : %f \r\n",a,Vitual_array[a],CurrRet);
5583 5585
 //            Compare_Data *= 1000;
5584 5586
 
5585 5587
 //            if(CurrRet < 0){
@@ -5597,17 +5599,24 @@ double AGC_AutoControl_ADC_Compare(double CurrentAdc,uint8_t* CompareAdc,uint8_t
5597 5599
 //                printf("ret : %f CurrRet  : %f  CurrentAdc : %f  %d.Vitual_array[a] : %f dot : %d\r\n",ret,CurrRet,CurrentAdc,i,Vitual_array[a],dot);
5598 5600
                 dot = a;
5599 5601
             }
5602
+           if(size - 1 == i){
5603
+//                printf("size - 1 : %d  i : %d \r\n",size -1 , i);
5604
+                break;
5605
+            }               
5600 5606
         }
5601 5607
         
5602 5608
     }
5603
-    if(Lastdata > CurrentAdc){
5604
-//        printf("RefTable_Data[(size / 2) - 1] : %d \r\n",RefTable_Data[(size / 2) - 1]);
5605
-        return RefTable_Data[(size / 2) - 1];
5609
+    if(Lastdata >= CurrentAdc){
5610
+//        for(int i = 0; i < size; i++){
5611
+//            printf("RefTable_Data[%d] : %d \r\n",i,RefTable_Data[i]);        
5612
+//        }
5613
+//        printf("RefTable_Data[%d] : %d \r\n",size,RefTable_Data[(LastIndex )]);
5614
+        return RefTable_Data[LastIndex ];
5606 5615
     }
5607 5616
 //        printf("CurrentAdc : %f     TableAdc : %f \r\n",CurrentAdc,TableAdc);
5608 5617
 //        for(int a = 0; a < sizeof(AGC_dBm_t); a++)
5609 5618
 //            printf("AutoControl_Save[%d] : %d \r\n",a,AutoControl_Save[a]);
5610
-    if(first_data < CurrentAdc){
5619
+    if(first_data <= CurrentAdc){
5611 5620
 //        printf("(RefTable_Data[0]) : %d \r\n",(RefTable_Data[0]));
5612 5621
         return (RefTable_Data[0]);
5613 5622
     }else{
@@ -6591,14 +6600,14 @@ typedef enum{
6591 6600
     DL_Level_H,
6592 6601
     DL_Level_L,        
6593 6602
 };
6594
-void DL_Det_Function(uint8_t Table_Num,uint8_t* CurrADC_Level,uint8_t* Det_Val,uint8_t* Level){
6603
+void DL_Det_Function(uint8_t Table_Num,uint8_t* CurrADC_Level,DET_TABLEDL_st* DL_Table,uint8_t* Level){
6595 6604
     double ret = 0;//  
6596 6605
     uint8_t* AGC_Table;
6597 6606
     int16_t Levelret = 0;    
6598 6607
     AGC_Table = &DL_DET_Table_ref[Table_Num][TABLE_MAX_VALUE];
6599 6608
     ret = (((CurrADC_Level[DL_Level_H] << 8) | CurrADC_Level[DL_Level_L]) * 0.001);
6600 6609
                 
6601
-    Levelret = (int16_t)Bluecell_TestPro(AGC_AutoControl_ADC_Compare(ret,&Det_Val,33,AGC_Table));
6610
+    Levelret = (int16_t)Bluecell_TestPro(AGC_AutoControl_ADC_Compare(ret,&DL_Table->Table_Det5_dBm_H,DL_Table->Table_Length,AGC_Table));
6602 6611
     Level[DL_Level_H] = (Levelret & 0xFF00) >> 8;
6603 6612
     Level[DL_Level_L] = (Levelret & 0x00FF);
6604 6613
 }
@@ -6900,6 +6909,10 @@ void AGC_Function(){//DL
6900 6909
             bluecell_Currdatastatus.DLI_Level1_L = (Levelret & 0x00FF);
6901 6910
 #else
6902 6911
             DL_Det_Function(MBIC_Table_DL1_INDEX,&bluecell_Currdatastatus.DLI_P1_Level1_H,&Det_DL1.Table_Det5_dBm_H,&bluecell_Currdatastatus.DLI_Level1_H);
6912
+            DL_Det_Function(MBIC_Table_DL2_INDEX,&bluecell_Currdatastatus.DLI_P2_Level2_H,&Det_DL2.Table_Det5_dBm_H,&bluecell_Currdatastatus.DLI_Level2_H);
6913
+            DL_Det_Function(MBIC_Table_DL3_INDEX,&bluecell_Currdatastatus.DLI_P3_Level3_H,&Det_DL3.Table_Det5_dBm_H,&bluecell_Currdatastatus.DLI_Level3_H);
6914
+            DL_Det_Function(MBIC_Table_DL4_INDEX,&bluecell_Currdatastatus.DLI_P4_Level4_H,&Det_DL4.Table_Det5_dBm_H,&bluecell_Currdatastatus.DLI_Level4_H);
6915
+
6903 6916
 
6904 6917
 #endif // PYJ.2020.07.01_END -- 
6905 6918
 #if 0 // PYJ.2020.06.20_BEGIN -- 
@@ -6917,7 +6930,7 @@ void AGC_Function(){//DL
6917 6930
 //              printf("ResdBm : DL1 : %d \r\n",ResdBm);
6918 6931
 //            HAL_Delay(1000);
6919 6932
 
6920
-#if 1 // PYJ.2020.06.23_BEGIN -- 
6933
+#if 0 // PYJ.2020.06.23_BEGIN -- 
6921 6934
             AGC_Table = &DL_DET_Table_ref[MBIC_Table_DL2_INDEX][TABLE_MAX_VALUE];
6922 6935
             ret  = bluecell_Currdatastatus.DLI_P2_Level2_H << 8;
6923 6936
             ret += bluecell_Currdatastatus.DLI_P2_Level2_L;   

+ 1 - 0
Bluecell_Src/eeprom.c

@@ -117,6 +117,7 @@ void EEPROM_M24C08_Init(void){
117 117
     EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_TEMP_UL1_TABLE_ADDRESDS,&Temp_UL2.Table_1_Temp,sizeof(TEMP_TABLE_st) );
118 118
     EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_TEMP_UL2_TABLE_ADDRESDS,&Temp_UL3.Table_1_Temp,sizeof(TEMP_TABLE_st) );
119 119
     EEPROM_M24C08_Read(EEPROM_M24C08_ID,EEPROM_TEMP_UL3_TABLE_ADDRESDS,&Temp_UL4.Table_1_Temp,sizeof(TEMP_TABLE_st) );
120
+
120 121
 //    printf("TableDL 1_Init START ORIGIN TABLE LENGTH  %d / Ref : %d \r\n",Att_DL1.Table_Length,Att_DL1.Table_Ref);
121 122
 //    printf("TableDL 2_Init START ORIGIN TABLE LENGTH  %d / Ref : %d \r\n",Att_DL2.Table_Length,Att_DL2.Table_Ref);
122 123
 //    printf("TableDL 3_Init START ORIGIN TABLE LENGTH  %d / Ref : %d \r\n",Att_DL3.Table_Length,Att_DL3.Table_Ref);    

+ 1 - 0
Src/main.c

@@ -647,6 +647,7 @@ static void MX_I2C2_Init(void)
647 647
   hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
648 648
   hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
649 649
   hi2c2.Init.OwnAddress2 = 0;
650
+  
650 651
   hi2c2.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
651 652
   hi2c2.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
652 653
   if (HAL_I2C_Init(&hi2c2) != HAL_OK)