Parcourir la source

Тесты оптимизации

Anatoliy Chigirinskiy il y a 1 an
Parent
commit
d9bdbff134
4 fichiers modifiés avec 31 ajouts et 47 suppressions
  1. 27 35
      Devices/ad9912.c
  2. 2 10
      Devices/lmx2594.c
  3. 1 1
      Devices/potentiometer.c
  4. 1 1
      main.c

+ 27 - 35
Devices/ad9912.c

@@ -80,91 +80,85 @@ double ad9912_set_main_band(double lmx_freq,double f_pd) {
 }
 
 double ad9912_set_out_of_band(double lmx_freq,double f_pd) {
-    
-    printf("f_pd in out_of_band func = %f\n",f_pd);
-    printf("freq in func = %f\n",lmx_freq);
-    // if (freq >100e3 && freq <=1000e6) {
-    //     lmx_freq = 4000e6-freq;
-    // }
-    // else {
-    //     lmx_freq = freq;
-    // }
+
     double f_vco = 2*lmx_freq; // VCO frequency
     double vco_div = 7.5e9/lmx_freq;
     int chan_div = 2;
 
     if (f_vco < 7.5e9) {
-        if (vco_div > 2 && vco_div <= 4)
+        if (vco_div > 2 && vco_div <= 4) {
             chan_div = 4;  // 4
-        f_vco = lmx_freq * chan_div;
-        if (vco_div > 4 && vco_div <= 6) {
+            f_vco = lmx_freq * chan_div;
+        }
+        else if (vco_div > 4 && vco_div <= 6) {
             chan_div = 6;  // 6
             f_vco = lmx_freq * chan_div;
         }
-        if (vco_div > 6 && vco_div <= 8) {
+        else if (vco_div > 6 && vco_div <= 8) {
             chan_div = 8;  // 8
             f_vco = lmx_freq * chan_div;
         }
-        if (vco_div > 8 && vco_div <= 12) {
+        else if (vco_div > 8 && vco_div <= 12) {
             chan_div = 12;  // 12
             f_vco = lmx_freq * chan_div;
         }
-        if (vco_div > 12 && vco_div <= 16) {
+        else if (vco_div > 12 && vco_div <= 16) {
             chan_div = 16;  // 16
             f_vco = lmx_freq * chan_div;
         }
-        if (vco_div > 16 && vco_div <= 24) {
+        else if (vco_div > 16 && vco_div <= 24) {
             chan_div = 24;  // 24
             f_vco = lmx_freq * chan_div;
         }
-        if (vco_div > 24 && vco_div <= 32) {
+        else if (vco_div > 24 && vco_div <= 32) {
             chan_div = 32;  // 32
             f_vco = lmx_freq * chan_div;
         }
-        if (vco_div > 32 && vco_div <= 48) {
+        else if (vco_div > 32 && vco_div <= 48) {
             chan_div = 48;  // 48
             f_vco = lmx_freq * chan_div;
         }
-        if (vco_div > 48 && vco_div <= 64) {
+        else if (vco_div > 48 && vco_div <= 64) {
             chan_div = 64;  // 64
             f_vco = lmx_freq * chan_div;
         }
-        if (vco_div > 64 && vco_div <= 72) {
+        else if (vco_div > 64 && vco_div <= 72) {
             chan_div = 72;  // 72
             f_vco = lmx_freq * chan_div;
         }
-        if (vco_div > 72 && vco_div <= 96) {
+        else if (vco_div > 72 && vco_div <= 96) {
             chan_div = 96;  // 96
             f_vco = lmx_freq * chan_div;
         }
-        if (vco_div > 96 && vco_div <= 128) {
+        else if (vco_div > 96 && vco_div <= 128) {
             chan_div = 128;  // 128
             f_vco = lmx_freq * chan_div;
         }
-        if (vco_div > 128 && vco_div <= 192) {
+        else if (vco_div > 128 && vco_div <= 192) {
             chan_div = 192;  // 192
             f_vco = lmx_freq * chan_div;
         }
-        if (vco_div > 192 && vco_div <= 256) {
+        else if (vco_div > 192 && vco_div <= 256) {
             chan_div = 256;  // 256
             f_vco = lmx_freq * chan_div;
         }
-        if (vco_div > 256 && vco_div <= 384) {
+        else if (vco_div > 256 && vco_div <= 384) {
             chan_div = 384;  // 384
             f_vco = lmx_freq * chan_div;
         }
-        if (vco_div > 384 && vco_div <= 512) {
+        else if (vco_div > 384 && vco_div <= 512) {
             chan_div = 512;  // 512
             f_vco = lmx_freq * chan_div;
         }
-        if (vco_div > 512 && vco_div <= 768) {
+        else if (vco_div > 512 && vco_div <= 768) {
             chan_div = 768;  // 768
             f_vco = lmx_freq * chan_div;
         }
     }
+    else {
+        f_vco = lmx_freq * 2;
+    }
 
-    printf ("Chan_div in func = %d\n",chan_div);
-    printf("F_vco in func = %f\n",f_vco);
     // Divide the frequncy by the old value of the phase detector frequency and only left with the integer part
     uint32_t N = (uint32_t) (f_vco/f_pd);
     if (f_vco <= 12500e6) {
@@ -177,7 +171,6 @@ double ad9912_set_out_of_band(double lmx_freq,double f_pd) {
             N = 32;
         }
     };
-    printf("N = %d\n", N);
     // Calculate the new phase detector frequency by dividing the frequency by the new value of N
     f_pd = f_vco/N; // Phase detector frequency
 
@@ -240,13 +233,12 @@ double ad9912_set(void *bar1, double freq, double f_pd) {
     };
 
     // Create the appropriate header
-    uint32_t *DDS_HEADER = bar1 + AD9912_BASE_ADDR;
-    *DDS_HEADER = ((0 << 23) | (DeviceIdDDS << 18) | ((sizeof(ad9912_ftw_regs)/4) << 1) | 1);
-
+    uint32_t *dds_header = bar1 + AD9912_BASE_ADDR;
+    *dds_header = ((0 << 23) | (DeviceIdDDS << 18) | ((sizeof(ad9912_ftw_regs)/4) << 1) | 1);
+    uint32_t *dds_data = bar1 + AD9912_BASE_ADDR;
     // Write the data
     for (int i = 0; i < sizeof(ad9912_ftw_regs)/4; i++) {
-        uint32_t *DDS_DATA = bar1 + AD9912_BASE_ADDR;
-        *DDS_DATA = ad9912_ftw_regs[i];
+        *dds_data = ad9912_ftw_regs[i];
     }
 
     return f_pd;

+ 2 - 10
Devices/lmx2594.c

@@ -348,8 +348,8 @@ int lmx_freq_set_main_band_int_mode(void *bar1, double lmx_freq, double f_pd) {
     uint32_t LMX_HEADER = ((0x1<< 23) | ((sizeof(lmx_change_freq_regs) / 4) << BITP_LMX2594_4MOSI_HEADER) | 1);
     uint32_t *ptr = bar1 + LMX_BASE_ADDR;
     *ptr = LMX_HEADER;
+    uint32_t *data_ptr = bar1 + LMX_BASE_ADDR;
     for (int i = 0; i < sizeof(lmx_change_freq_regs)/4; i++) {
-        uint32_t *data_ptr = bar1 + LMX_BASE_ADDR;
         *data_ptr = lmx_change_freq_regs[i];
     }
     return 0;
@@ -699,8 +699,8 @@ int lmx_freq_set_out_of_band_int_mode(void *bar1, double lmx_freq, double f_pd)
     uint32_t *ptr = bar1 + LMX_BASE_ADDR;
     *ptr = LMX_HEADER;
     // Send the data
+    uint32_t *data_ptr = bar1 + LMX_BASE_ADDR;
     for (int i = 0; i < sizeof(lmx_change_freq_regs) / 4; i++) {
-        uint32_t *data_ptr = bar1 + LMX_BASE_ADDR;
         *data_ptr = lmx_change_freq_regs[i];
     }
     // char filename[100];
@@ -718,14 +718,6 @@ int lmx_freq_set_out_of_band_int_mode(void *bar1, double lmx_freq, double f_pd)
     return 0;
 }
 
-double lmx_lower_bond_set (double freq, double f_pd) {
-    double f_max2870 = 4e9;
-
-    double lmx_req_freq = f_max2870-freq; // 4 GHz - freq
-
-    return lmx_req_freq;
-}
-
 double lmx_get_freq(double freq) {
 
     if (freq < 100e3 || freq> 45e9) {

+ 1 - 1
Devices/potentiometer.c

@@ -21,6 +21,6 @@ void potentiometer_set(void *bar1, uint8_t pot_val_ch_a, uint8_t pot_val_ch_b) {
     usleep(1);
     SET_REGISTER_PARAM(cfg_reg, CFG_REG_SPI_MODE_BITM, CFG_REG_SPI_MODE_BITP, CFG_REG_SPI_MODE_1MOSI);
     *spi_mode = cfg_reg;
-    
     set_cfg_reg(cfg_reg);
+    usleep(1);
 }

+ 1 - 1
main.c

@@ -113,9 +113,9 @@ int main(int argc, char *argv[])
     rst_for_fpga(bar1);
     shift_reg(bar1);
 	potentiometer_set(bar1, 0, 0);
+	max2870_init(bar1);
     ad9912_init(bar1);
     lmx2594_init(bar1);
-	max2870_init(bar1);
 
 
 	// Установка обработчика сигналов