From 62c50510f207a831187c941b46a60cfbe4824c89 Mon Sep 17 00:00:00 2001 From: pa3gsb Date: Sun, 25 Mar 2018 13:13:12 +0200 Subject: [PATCH] tx-pwr control max 19.5dB --- radioberry.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/radioberry.c b/radioberry.c index 9033d2d..18b114a 100644 --- a/radioberry.c +++ b/radioberry.c @@ -130,12 +130,12 @@ void radioberry_protocol_init(int rx,int pixels) { display_width=pixels; fprintf(stderr,"radioberry_protocol: buffer size: =%d\n", buffer_size); -/* +#ifndef GPIO if (gpioInitialise() < 0) { fprintf(stderr,"radioberry_protocol: gpio could not be initialized. \n"); exit(-1); } -*/ +#endif gpioSetMode(13, PI_INPUT); //rx1_FIFOEmpty gpioSetMode(16, PI_INPUT); //rx2_FIFOEmpty @@ -231,11 +231,18 @@ void radioberry_protocol_iq_samples(int isample,int qsample) { sem_wait(&mutex); + int power=0; + if(tune && !transmitter->tune_use_drive) { + power=(int)((double)transmitter->drive_level/100.0*(double)transmitter->tune_percent); + } else { + power=transmitter->drive_level; + } + tx_iqdata[0] = 0; - tx_iqdata[1] = transmitter->drive / 6.4; // convert drive level from 0-255 to 0-39 ) - if (prev_drive_level != transmitter->drive) { + tx_iqdata[1] = power / 6.4; // convert drive level from 0-255 to 0-39 steps of 0.5dB to control AD9866) + if (prev_drive_level != transmitter->drive_level) { printf("drive level %d - corrected drive level %d \n", transmitter->drive_level, tx_iqdata[1]); - prev_drive_level = transmitter->drive; + prev_drive_level = transmitter->drive_level; } tx_iqdata[2] = isample>>8; tx_iqdata[3] = isample; @@ -311,10 +318,8 @@ void radioberry_protocol_stop() { spiClose(rx1_spi_handler); if (rx2_spi_handler !=0) spiClose(rx2_spi_handler); - -#ifndef GPIO + gpioTerminate(); -#endif } -- 2.45.2