Advertisement
Guest User

LUT_error

a guest
Jun 9th, 2015
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.09 KB | None | 0 0
  1. #define     ADC_Cod_0   ADC_Rx[NReg_Volt][i]
  2. #define     ADC_Cod_1   ADC_Rx[NReg_Volt][i+2]
  3.  
  4. #define     Rx_0        ADC_Rx[NReg_Volt][i+1]
  5. #define     Rx_1        ADC_Rx[NReg_Volt][i+3]
  6.  
  7. //#define   ADC_Cod_0   ADC_Rx[CR_NDiap][i]
  8. //#define   ADC_Cod_1   ADC_Rx[CR_NDiap][i+2]
  9. //#define   Rx_0        ADC_Rx[CR_NDiap][i+1]
  10. //#define   Rx_1        ADC_Rx[CR_NDiap][i+3]
  11.  
  12. extern  code unsigned long      ADC_Rx[ 3 ][ SD_Conv ];                                                                        
  13.                 code unsigned long  ADC_Rx[ 3 ][ SD_Conv ] =
  14. {
  15. //[ 0 ][ 40 ]  250v R/2
  16.     0xF665,   500,  0xD5E6,   600,  0xB73A,   700,  0xA0CC,    800, 0x8ED6,    900,
  17.     0x805D,  1000,  0x74AF,  1100,  0x6B20,  1200,  0x62AF,   1300, 0x5BA5,   1400,
  18.     0x557F,  1500,  0x5032,  1600,  0x472F,  1800,  0x400A,   2000, 0x3A43,   2200,
  19.     0x3565,  2400,  0x312F,  2600,  0x2DB8,  2800,  0x2AAA,   3000, 0x2486,   3500,
  20.     0x1FF5,  4000,  0x1C6C,  4500,  0x198F,  5000,  0x173A,   5500, 0x154C,   6000,
  21.     0x13A6,  6500,  0x121F,  7000,  0x0000,     0,  0x0000,     0,  0x0000,      0,
  22. //[ 1 ][ 40 ]  500v R
  23.     0xF632,  6500,  0xE4F7,  7000,  0xD57E,  7500,  0xC83F,   8000, 0xBC92,   8500,
  24.     0xB2BD,  9000,  0xA94B,  9500,  0xA037, 10000,  0x97F1,  10500, 0x9228,  11000,
  25.     0x8B49, 11500,  0x85A6, 12000,  0x806A, 12500,  0x6B97,  15000, 0x505D,  20000,
  26.     0x359B, 30000,  0x284F, 40000,  0x2025, 50000,  0x1AAB,  60000, 0x16E4,  70000,
  27.     0x1402, 80000,  0x11C3, 90000,  0x100D,100000,  0x0E98, 110000, 0x0000,      0,
  28.     0x0000,     0,  0x0000,     0,  0x0000,     0,  0x0000,      0, 0x0000,      0,
  29. //[ 2 ][ 40 ] 1000v R
  30. //0x1E80,100000,    0x0E2B,200000,  0x0970,303000,  0x070E, 415000, 0x04C6, 600000,
  31. //0x0418,700000,    0x0385,800000,  0x030B,910000,  0x0000,      0, 0x0000,      0,
  32.     0x20CE,  90000, 0x1BB7,102000,  0x0E0D,203000,  0x0948,303000,  0x06DD, 405000,      
  33.     0x0580, 500000, 0x0490,607000,  0x03DD,700000,  0x0353,809000,  0x02E8, 910000,
  34.     0x0299,1000000, 0x0000,     0,  0x0000,     0,  0x0000,     0,  0x0000,      0,
  35.     0x0000,      0, 0x0000,     0,  0x0000,     0,  0x0000,     0,  0x0000,      0,
  36.     0x0000,      0, 0x0000,     0,  0x0000,     0,  0x0000,     0,  0x0000,      0,
  37.     0x0000,      0, 0x0000,     0,  0x0000,     0,  0x0000,     0,  0x0000,      0,
  38. };
  39.  
  40. extern  unsigned    long    Rx_L;                                                                                   //&
  41.                 unsigned    long    Rx_L;
  42.  
  43. unsigned    int     CR_work    = 0;
  44. unsigned    int     ui_ADC_Cod = 0;
  45.  
  46. void    Conv_ADC_Rx_KLA(void);                                                                                  //$
  47. void    Conv_ADC_Rx_KLA(void)
  48. {
  49.     int i;
  50.  
  51.     ui_ADC_Cod  = LRez;
  52.  
  53.     for( i = 0; i < SD_Conv; i += 2 ){      // Find Interval
  54.         if( ADC_Cod_0 == ui_ADC_Cod   ){                                                                break; }                       
  55.         if( ADC_Cod_1 <= ui_ADC_Cod   ){                                                                break; }
  56.         if( ADC_Cod_1 == 0                ){    i = SD_Conv;                                    break; }
  57.     }
  58.                                                                                 // Not found
  59.     if( i == SD_Conv ){                                                
  60.     }else{                                                              // Ok
  61.         if( ADC_Cod_0 == ui_ADC_Cod ){ 
  62.             Rx_L = Rx_0;                /*Run_Show_Rx_Str();*/                                      return; }
  63.         if( ADC_Cod_1 == ui_ADC_Cod ){ 
  64.             Rx_L = Rx_1;                /*Run_Show_Rx_Str();*/                                      return; }
  65.         else{
  66.             LRez0 = Rx_1;                   LRez0 -= Rx_0;
  67.             LRez1 = ADC_Cod_0;      LRez1 -= ADC_Cod_1;
  68.  
  69.             LRez  = ADC_Cod_0;      LRez  -= ui_ADC_Cod;
  70.             Rx_L  = LRez0 * LRez;
  71.             Rx_L /= LRez1;
  72.             Rx_L += Rx_0;
  73.         }
  74.     }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement