@ -120,6 +120,8 @@ static THD_FUNCTION(Thread1, arg)
if ( shell_function ) {
if ( shell_function ) {
shell_function ( shell_nargs - 1 , & shell_args [ 1 ] ) ;
shell_function ( shell_nargs - 1 , & shell_args [ 1 ] ) ;
shell_function = 0 ;
shell_function = 0 ;
osalThreadSleepMilliseconds ( 10 ) ;
continue ;
}
}
// Process UI inputs
// Process UI inputs
ui_process ( ) ;
ui_process ( ) ;
@ -802,11 +804,18 @@ bool sweep(bool break_on_operation)
// blink LED while scanning
// blink LED while scanning
palClearPad ( GPIOC , GPIOC_LED ) ;
palClearPad ( GPIOC , GPIOC_LED ) ;
// Power stabilization after LED off, also align timings on i == 0
// Power stabilization after LED off, also align timings on i == 0
// !!!!! Don`t understand why si5351 non stable on band 2 then change from band 3
// It fixed if set before one band 1 frequency
// Possibly problem in gain, call only si5351_set_frequency_with_offset not work
// Also it allow align sweep timings
set_frequency ( 50000000 ) ;
DSP_START ( 1 ) ; DSP_WAIT_READY ;
for ( i = 0 ; i < sweep_points ; i + + ) { // 5300
for ( i = 0 ; i < sweep_points ; i + + ) { // 5300
if ( frequencies [ i ] = = 0 ) break ;
if ( frequencies [ i ] = = 0 ) break ;
delay = set_frequency ( frequencies [ i ] ) ; // 700
delay = set_frequency ( frequencies [ i ] ) ; // 700
tlv320aic3204_select ( 0 ) ; // 60 CH0:REFLECT, reset and begin measure
tlv320aic3204_select ( 0 ) ; // 60 CH0:REFLECT, reset and begin measure
DSP_START ( delay + ( ( i = = 0 ) ? 2 : 0 ) ) ; // 1900
DSP_START ( delay ) ; // 1900
//================================================
//================================================
// Place some code thats need execute while delay
// Place some code thats need execute while delay
//================================================
//================================================
@ -1359,7 +1368,7 @@ cal_interpolate(int s)
j = 0 ;
j = 0 ;
for ( ; i < sweep_points ; i + + ) {
for ( ; i < sweep_points ; i + + ) {
uint32_t f = frequencies [ i ] ;
uint32_t f = frequencies [ i ] ;
if ( f = = 0 ) goto interpolate_finish ;
for ( ; j < src - > _sweep_points - 1 ; j + + ) {
for ( ; j < src - > _sweep_points - 1 ; j + + ) {
if ( src - > _frequencies [ j ] < = f & & f < src - > _frequencies [ j + 1 ] ) {
if ( src - > _frequencies [ j ] < = f & & f < src - > _frequencies [ j + 1 ] ) {
// found f between freqs at j and j+1
// found f between freqs at j and j+1
@ -1388,11 +1397,11 @@ cal_interpolate(int s)
for ( ; i < sweep_points ; i + + ) {
for ( ; i < sweep_points ; i + + ) {
// fill cal_data at tail of src
// fill cal_data at tail of src
for ( eterm = 0 ; eterm < 5 ; eterm + + ) {
for ( eterm = 0 ; eterm < 5 ; eterm + + ) {
cal_data [ eterm ] [ i ] [ 0 ] = src - > _cal_data [ eterm ] [ s weep_points- 1 ] [ 0 ] ;
cal_data [ eterm ] [ i ] [ 0 ] = src - > _cal_data [ eterm ] [ s rc- > _s weep_points- 1 ] [ 0 ] ;
cal_data [ eterm ] [ i ] [ 1 ] = src - > _cal_data [ eterm ] [ s weep_points- 1 ] [ 1 ] ;
cal_data [ eterm ] [ i ] [ 1 ] = src - > _cal_data [ eterm ] [ s rc- > _s weep_points- 1 ] [ 1 ] ;
}
}
}
}
interpolate_finish :
cal_status | = src - > _cal_status | CALSTAT_APPLY | CALSTAT_INTERPOLATED ;
cal_status | = src - > _cal_status | CALSTAT_APPLY | CALSTAT_INTERPOLATED ;
redraw_request | = REDRAW_CAL_STATUS ;
redraw_request | = REDRAW_CAL_STATUS ;
}
}
@ -2184,8 +2193,8 @@ static void VNAShell_executeLine(char *line){
shell_function = scp - > sc_function ;
shell_function = scp - > sc_function ;
// Wait execute command in sweep thread
// Wait execute command in sweep thread
do {
do {
osalThreadSleepMilliseconds ( 100 ) ; }
osalThreadSleepMilliseconds ( 100 ) ;
while ( shell_function ) ;
} while ( shell_function ) ;
}
}
else
else
scp - > sc_function ( shell_nargs - 1 , & shell_args [ 1 ] ) ;
scp - > sc_function ( shell_nargs - 1 , & shell_args [ 1 ] ) ;