mirror of
https://github.com/EdgeTX/edgetx.git
synced 2025-07-25 17:25:10 +03:00
Spectrum analyser issues fixed
This commit is contained in:
parent
9122df2f67
commit
e2b1d56e3a
2 changed files with 12 additions and 10 deletions
|
@ -63,16 +63,16 @@ void menuRadioSpectrumAnalyser(event_t event)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (uint8_t i=0; i<SPECTRUM_FIELDS_MAX+1; i++) {
|
for (uint8_t i=0; i<SPECTRUM_FIELDS_MAX+1; i++) {
|
||||||
uint8_t blink = ((s_editMode>0) ? BLINK|INVERS : INVERS);
|
LcdFlags attr = (menuHorizontalPosition == i ? (s_editMode>0 ? INVERS|BLINK : INVERS) : 0);
|
||||||
|
|
||||||
switch (i) {
|
switch (i) {
|
||||||
case SPECTRUM_FREQUENCY: {
|
case SPECTRUM_FREQUENCY: {
|
||||||
uint16_t frequency = reusableBuffer.spectrumAnalyser.freq / 1000000;
|
uint16_t frequency = reusableBuffer.spectrumAnalyser.freq / 1000000;
|
||||||
lcdDrawText(1, 10, "F:", 0);
|
lcdDrawText(1, 10, "F:", 0);
|
||||||
lcdDrawNumber(lcdLastRightPos + 2, 10, frequency, (menuHorizontalPosition == 0 ? blink : 0));
|
lcdDrawNumber(lcdLastRightPos + 2, 10, frequency, attr);
|
||||||
lcdDrawText(lcdLastRightPos + 2, 10, "MHz", 0);
|
lcdDrawText(lcdLastRightPos + 2, 10, "MHz", 0);
|
||||||
if (menuHorizontalPosition == 0) {
|
if (attr) {
|
||||||
reusableBuffer.spectrumAnalyser.freq = checkIncDec(event, frequency, 2400, 2485, 0) * 1000000;
|
reusableBuffer.spectrumAnalyser.freq = uint32_t(checkIncDec(event, frequency, 2400, 2485, 0)) * 1000000;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -80,14 +80,15 @@ void menuRadioSpectrumAnalyser(event_t event)
|
||||||
case SPECTRUM_SPAN:
|
case SPECTRUM_SPAN:
|
||||||
uint8_t span = reusableBuffer.spectrumAnalyser.span / 1000000;
|
uint8_t span = reusableBuffer.spectrumAnalyser.span / 1000000;
|
||||||
lcdDrawText(lcdLastRightPos + 5, 10, "S:", 0);
|
lcdDrawText(lcdLastRightPos + 5, 10, "S:", 0);
|
||||||
lcdDrawNumber(lcdLastRightPos + 2, 10, reusableBuffer.spectrumAnalyser.span/1000000, (menuHorizontalPosition==1 ? blink : 0));
|
lcdDrawNumber(lcdLastRightPos + 2, 10, reusableBuffer.spectrumAnalyser.span/1000000, attr);
|
||||||
lcdDrawText(lcdLastRightPos + 2, 10, "MHz", 0);
|
lcdDrawText(lcdLastRightPos + 2, 10, "MHz", 0);
|
||||||
if (menuHorizontalPosition == 1) {
|
if (attr) {
|
||||||
reusableBuffer.spectrumAnalyser.span = checkIncDec(event, span, 1, 80, 0) * 1000000;
|
reusableBuffer.spectrumAnalyser.span = checkIncDec(event, span, 1, 80, 0) * 1000000;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t peak_y = 1;
|
uint8_t peak_y = 1;
|
||||||
uint8_t peak_x = 0;
|
uint8_t peak_x = 0;
|
||||||
for (uint8_t i=0; i<LCD_W; i++) {
|
for (uint8_t i=0; i<LCD_W; i++) {
|
||||||
|
|
|
@ -185,12 +185,13 @@ void processSpectrumAnalyserFrame(uint8_t module, uint8_t * frame)
|
||||||
// left = 2440000000 - 20000000
|
// left = 2440000000 - 20000000
|
||||||
// step = 10000
|
// step = 10000
|
||||||
|
|
||||||
int32_t D = *frequency - (2440000000 - 40000000 / 2);
|
|
||||||
|
|
||||||
// TRACE("Fq=%u, Pw=%d, X=%d, Y=%d", *frequency, int32_t(*power), D * 128 / 40000000, int32_t(127 + *power));
|
// TRACE("Fq=%u, Pw=%d, X=%d, Y=%d", *frequency, int32_t(*power), D * 128 / 40000000, int32_t(127 + *power));
|
||||||
uint8_t x = D * 128 / 40000000;
|
|
||||||
|
|
||||||
reusableBuffer.spectrumAnalyser.bars[x] = 127 + *power;
|
int32_t position = *frequency - reusableBuffer.spectrumAnalyser.freq - (reusableBuffer.spectrumAnalyser.span / 2);
|
||||||
|
uint8_t x = (position * LCD_W) / reusableBuffer.spectrumAnalyser.span;
|
||||||
|
if (x < LCD_W) {
|
||||||
|
reusableBuffer.spectrumAnalyser.bars[x] = 127 + *power;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void processPowerMeterFrame(uint8_t module, uint8_t * frame)
|
void processPowerMeterFrame(uint8_t module, uint8_t * frame)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue