diff --git a/BF_companion b/BF_companion index 7fbf31e..18bd275 100755 Binary files a/BF_companion and b/BF_companion differ diff --git a/main.c b/main.c index d750a3a..457bd02 100644 --- a/main.c +++ b/main.c @@ -84,6 +84,9 @@ #define READ_TIMEOUT 2000 +#define BF_CMD_USER_MULT 0x8001U + + // номера используемых физических каналов // static uint32_t f_channels[ADC_LCH_CNT] = {0}; // режимы измерения для каналов // @@ -297,14 +300,21 @@ int32_t f_setup_params(t_x502_hnd hnd) { // } - X502_SetSyncMode(hnd, X502_SYNC_DI_SYN1_FALL); //set ADC sample frequency from internal generator with frequency 2 MHz //X502_SetRefFreq(hnd, X502_REF_FREQ_2000KHZ); + //=======================================================// + //for real work with Radar + //X502_SetSyncMode(hnd, X502_SYNC_DI_SYN1_FALL); + //X502_SetSyncStartMode(hnd, X502_SYNC_DI_SYN2_RISE); //start ADC samping by external trigger - X502_SetSyncStartMode(hnd, X502_SYNC_DI_SYN2_RISE); //start ADC samping by external trigger + //=======================================================// + //for debug purposes: + X502_SetSyncMode(hnd, X502_SYNC_INTERNAL); + X502_SetSyncStartMode(hnd, X502_SYNC_INTERNAL); //start ADC samping after executing X502_StreamsStart() + @@ -383,7 +393,75 @@ int main(int argc, char** argv) { fprintf(stderr, "Ошибка настройки модуля: %s!", X502_GetErrorString(err)); } + char* BF_firmware_filename = "l502-BFfirmware0.ldr"; + printf("loading Blackfin firmware file: %s\n", BF_firmware_filename); + + uint32_t bf_firmware_load_state = X502_BfLoadFirmware(hnd, BF_firmware_filename); //load firmware from l502-BFfirmware0.ldr file to BlackFin + printf("load state: %u \n", bf_firmware_load_state); + + + uint32_t BF_cmd_receive_code = 0; + + uint16_t cmd_code = 3; + uint32_t par = 87; + const uint32_t snd_data[] = {1,1,2,2,3,4,5,56,67,23,1}; + uint32_t snd_size = 11; + uint32_t rcv_data[13] = {0,}; + uint32_t rcv_size = 13; + uint32_t tout = 1; + uint32_t recvd_size = 0; + + +/* + uint16_t cmd_code = BF_CMD_USER_MULT; + uint32_t par = 10; + const uint32_t snd_data[] = {1,1,2,2,3,4,5,56,67,23,1}; + uint32_t snd_size = 11; + uint32_t rcv_data[13] = {0,}; + uint32_t rcv_size = 13; + uint32_t tout = 1; + uint32_t recvd_size = 0; +*/ + + + printf("TX cmd_code: %u\n", cmd_code); + printf("TX tout: %u\n", tout); + printf("TX par: %u\n", par); + printf("TX snd_data size: %u\n", snd_size); + for (int i = 0; i < snd_size; ++i){ + printf(" %u,", snd_data[i]); + } + printf("\n"); + printf("TX rcv_size: %u\n", rcv_size); + + + BF_cmd_receive_code = X502_BfExecCmd (hnd, + cmd_code, + par, + snd_data, + snd_size, + rcv_data, + rcv_size, + tout, + &recvd_size); + + + printf("\n======================\n\n"); + printf("RX received code: %u\n", BF_cmd_receive_code); + printf("RX recvd_size: %u\n", recvd_size); + printf("RX received_data:\n" ); + for (int i = 0; i < recvd_size; ++i){ + printf(" %u,", rcv_data[i]); + } + printf("\n"); + + + X502_Close(hnd); + // освобождаем описатель + X502_Free(hnd); + return 0; + @@ -395,12 +473,13 @@ int main(int argc, char** argv) { // } - f_out = 2; + f_out = 1; struct timespec time_started; struct timespec time_ended; timespec_get(&time_started, TIME_UTC); float total_runs = 0.0; long double delta_time = 0.0; + while(f_out != 1){ total_runs += 1.0; diff --git a/makefile b/makefile index 6435129..6c16bb5 100644 --- a/makefile +++ b/makefile @@ -46,3 +46,5 @@ endif all: $(CC) main.c $(FLAGS) -ll502api -le502api -lx502api -o BF_companion +clean: + -rm BF_companion