kopia lustrzana https://github.com/OpenRTX/OpenRTX
Enabled measurement of volume level on MD-UV3x0
rodzic
07d886a442
commit
4ed16fb51c
|
@ -24,7 +24,7 @@
|
|||
/*
|
||||
* The sample buffer is structured as follows:
|
||||
*
|
||||
* | vbat | rssi | vox | vol |
|
||||
* | vbat | vol | rssi | vox |
|
||||
*
|
||||
* NOTE: we are forced to allocate it through a malloc in order to make it be
|
||||
* in the "large" 128kB RAM. This because the linker script maps the .data and
|
||||
|
@ -48,8 +48,8 @@ void adc1_init()
|
|||
* - PB0: RSSI level
|
||||
*/
|
||||
gpio_setMode(AIN_VBAT, INPUT_ANALOG);
|
||||
#if defined(PLATFORM_MD3x0)
|
||||
gpio_setMode(AIN_VOLUME, INPUT_ANALOG);
|
||||
#if defined(PLATFORM_MD3x0)
|
||||
gpio_setMode(AIN_MIC, INPUT_ANALOG);
|
||||
gpio_setMode(AIN_RSSI, INPUT_ANALOG);
|
||||
#endif
|
||||
|
@ -85,8 +85,9 @@ void adc1_init()
|
|||
| (3 << 10) /* CH3, vox level on PA3 */
|
||||
| (0 << 15); /* CH0, volume potentiometer level on PA0 */
|
||||
#else
|
||||
ADC1->SQR1 = 0; /* Convert one channel */
|
||||
ADC1->SQR3 |= (1 << 0); /* CH1, battery voltage on PA1 */
|
||||
ADC1->SQR1 = 1 << 20; /* Convert two channel */
|
||||
ADC1->SQR3 |= (1 << 0) /* CH1, battery voltage on PA1 */
|
||||
| (0 << 15); /* CH0, volume potentiometer level on PA0 */
|
||||
#endif
|
||||
|
||||
/* DMA2 Stream 0 configuration:
|
||||
|
|
|
@ -49,9 +49,9 @@ void adc1_terminate();
|
|||
/**
|
||||
* Get current measurement of a given channel, mapped as below:
|
||||
* - channel 0: battery voltage
|
||||
* - channel 1: RSSI level
|
||||
* - channel 2: vox level
|
||||
* - channel 3: volume level
|
||||
* - channel 1: volume level
|
||||
* - channel 2: RSSI level
|
||||
* - channel 3: vox level
|
||||
*
|
||||
* NOTE: the mapping above DOES NOT correspond to the physical ADC channel
|
||||
* mapping!
|
||||
|
|
|
@ -290,7 +290,7 @@ float radio_getRssi(const freq_t rxFreq)
|
|||
if(rxFreq < 401035000) offset_index = 0;
|
||||
if(rxFreq > 479995000) offset_index = 8;
|
||||
|
||||
float rssi_mv = adc1_getMeasurement(1);
|
||||
float rssi_mv = adc1_getMeasurement(2);
|
||||
float rssi_dbm = (rssi_mv - rssi_offset[offset_index]) / rssi_gain;
|
||||
return rssi_dbm;
|
||||
}
|
||||
|
|
|
@ -72,6 +72,7 @@
|
|||
#define RED_LED GPIOE,1
|
||||
|
||||
/* Analog inputs */
|
||||
#define AIN_VOLUME GPIOA,0
|
||||
#define AIN_VBAT GPIOA,1
|
||||
|
||||
/* Channel selection rotary encoder */
|
||||
|
|
|
@ -147,7 +147,7 @@ float platform_getMicLevel()
|
|||
|
||||
float platform_getVolumeLevel()
|
||||
{
|
||||
return 0.0f;
|
||||
return adc1_getMeasurement(1);
|
||||
}
|
||||
|
||||
uint8_t platform_getChSelector()
|
||||
|
|
Ładowanie…
Reference in New Issue