##// END OF EJS Templates
Commit before changing the resynchro strategy
paul -
r256:f8034461b403 R3a
parent child
Show More
@@ -43,6 +43,13 int swf2_extracted[ (NB_SAMPLES_PER_SNAP
43 43 ring_node ring_node_swf1_extracted;
44 44 ring_node ring_node_swf2_extracted;
45 45
46 typedef enum resynchro_state_t
47 {
48 IDLE,
49 MEASURE_K,
50 MEASURE_K_PLUS_1,
51 } resynchro_state;
52
46 53 //*********************
47 54 // Interrupt SubRoutine
48 55
@@ -873,6 +880,9 void snapshot_resynchronization( unsigne
873 880 double deltaPrevious_ms;
874 881 double deltaNext_ms;
875 882 double correctionInF2;
883 double center_k = 0.;
884 double cnter_k_plus_1 = 0.;
885 static resynchro_state state = IDLE;
876 886 static unsigned char resynchroEngaged = 0;
877 887
878 888 if (resynchroEngaged == 0)
@@ -909,13 +919,14 void snapshot_resynchronization( unsigne
909 919
910 920 if (correctionInF2 >=0 )
911 921 {
912 deltaTickInF2 = floor( correctionInF2 );
922 deltaTickInF2 = ceil( correctionInF2 );
913 923 }
914 924 else
915 925 {
916 deltaTickInF2 = ceil( correctionInF2 );
926 deltaTickInF2 = floor( correctionInF2 );
917 927 }
918 928 waveform_picker_regs->delta_snapshot = waveform_picker_regs->delta_snapshot + deltaTickInF2;
929 set_wfp_delta_f0_f0_2(); // this is necessary to reset the value of delta_f0 as delta_snapshot has been changed
919 930 PRINTF2("Correction of = %d, delta_snapshot = %d\n\n", deltaTickInF2, waveform_picker_regs->delta_snapshot);
920 931 }
921 932 else
@@ -981,7 +992,7 void reset_waveform_picker_regs( void )
981 992 * - 0x1C delta_snapshot
982 993 * - 0x20 delta_f0
983 994 * - 0x24 delta_f0_2
984 * - 0x28 delta_f1
995 * - 0x28 delta_f1 (obsolet parameter)
985 996 * - 0x2c delta_f2
986 997 * - 0x30 nb_data_by_buffer
987 998 * - 0x34 nb_snapshot_param
@@ -1002,17 +1013,17 void reset_waveform_picker_regs( void )
1002 1013
1003 1014 set_wfp_delta_f0_f0_2(); // 0x20, 0x24
1004 1015
1005 set_wfp_delta_f1(); // 0x28
1016 //the parameter delta_f1 [0x28] is not used anymore
1006 1017
1007 1018 set_wfp_delta_f2(); // 0x2c
1008 1019
1009 DEBUG_PRINTF1("delta_snapshot %x\n", waveform_picker_regs->delta_snapshot)
1010 DEBUG_PRINTF1("delta_f0 %x\n", waveform_picker_regs->delta_f0)
1011 DEBUG_PRINTF1("delta_f0_2 %x\n", waveform_picker_regs->delta_f0_2)
1012 DEBUG_PRINTF1("delta_f1 %x\n", waveform_picker_regs->delta_f1)
1013 DEBUG_PRINTF1("delta_f2 %x\n", waveform_picker_regs->delta_f2)
1014 // 2688 = 8 * 336
1015 waveform_picker_regs->nb_data_by_buffer = 0xa7f; // 0x30 *** 2688 - 1 => nb samples -1
1020 DEBUG_PRINTF1("delta_snapshot %x\n", waveform_picker_regs->delta_snapshot);
1021 DEBUG_PRINTF1("delta_f0 %x\n", waveform_picker_regs->delta_f0);
1022 DEBUG_PRINTF1("delta_f0_2 %x\n", waveform_picker_regs->delta_f0_2);
1023 DEBUG_PRINTF1("delta_f1 %x\n", waveform_picker_regs->delta_f1);
1024 DEBUG_PRINTF1("delta_f2 %x\n", waveform_picker_regs->delta_f2);
1025 // 2688 = 8 * 336
1026 waveform_picker_regs->nb_data_by_buffer = 0xa7f; // 0x30 *** 2688 - 1 => nb samples -1
1016 1027 waveform_picker_regs->snapshot_param = 0xa80; // 0x34 *** 2688 => nb samples
1017 1028 waveform_picker_regs->start_date = 0x7fffffff; // 0x38
1018 1029 //
@@ -1103,14 +1114,24 void set_wfp_delta_f0_f0_2( void )
1103 1114
1104 1115 delta_snapshot = waveform_picker_regs->delta_snapshot;
1105 1116 nb_samples_per_snapshot = parameter_dump_packet.sy_lfr_n_swf_l[0] * 256 + parameter_dump_packet.sy_lfr_n_swf_l[1];
1106 delta_f0_in_float =nb_samples_per_snapshot / 2. * ( 1. / 256. - 1. / 24576.) * 256.;
1117 delta_f0_in_float = nb_samples_per_snapshot / 2. * ( 1. / 256. - 1. / 24576.) * 256.;
1107 1118
1108 waveform_picker_regs->delta_f0 = delta_snapshot - floor( delta_f0_in_float );
1119 waveform_picker_regs->delta_f0 = delta_snapshot - floor( delta_f0_in_float );
1109 1120 waveform_picker_regs->delta_f0_2 = 0x30; // 48 = 11 0000, max 7 bits
1110 1121 }
1111 1122
1112 1123 void set_wfp_delta_f1( void )
1113 1124 {
1125 /** Sets the value of the delta_f1 parameter
1126 *
1127 * @param void
1128 *
1129 * @return void
1130 *
1131 * delta_f1 is not used, the snapshots are extracted from CWF_F1 waveforms.
1132 *
1133 */
1134
1114 1135 unsigned int delta_snapshot;
1115 1136 unsigned int nb_samples_per_snapshot;
1116 1137 float delta_f1_in_float;
@@ -1122,8 +1143,19 void set_wfp_delta_f1( void )
1122 1143 waveform_picker_regs->delta_f1 = delta_snapshot - floor( delta_f1_in_float );
1123 1144 }
1124 1145
1125 void set_wfp_delta_f2()
1146 void set_wfp_delta_f2( void ) // parameter not used, only delta_f0 and delta_f0_2 are used
1126 1147 {
1148 /** Sets the value of the delta_f2 parameter
1149 *
1150 * @param void
1151 *
1152 * @return void
1153 *
1154 * delta_f2 is used only for the first snapshot generation, even when the snapshots are extracted from CWF_F2
1155 * waveforms (see lpp_waveform_snapshot_controler.vhd for details).
1156 *
1157 */
1158
1127 1159 unsigned int delta_snapshot;
1128 1160 unsigned int nb_samples_per_snapshot;
1129 1161
General Comments 0
You need to be logged in to leave comments. Login now