mirror of
https://github.com/EdgeTX/edgetx.git
synced 2025-07-23 16:25:12 +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++) {
|
||||
uint8_t blink = ((s_editMode>0) ? BLINK|INVERS : INVERS);
|
||||
LcdFlags attr = (menuHorizontalPosition == i ? (s_editMode>0 ? INVERS|BLINK : INVERS) : 0);
|
||||
|
||||
switch (i) {
|
||||
case SPECTRUM_FREQUENCY: {
|
||||
uint16_t frequency = reusableBuffer.spectrumAnalyser.freq / 1000000;
|
||||
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);
|
||||
if (menuHorizontalPosition == 0) {
|
||||
reusableBuffer.spectrumAnalyser.freq = checkIncDec(event, frequency, 2400, 2485, 0) * 1000000;
|
||||
if (attr) {
|
||||
reusableBuffer.spectrumAnalyser.freq = uint32_t(checkIncDec(event, frequency, 2400, 2485, 0)) * 1000000;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -80,14 +80,15 @@ void menuRadioSpectrumAnalyser(event_t event)
|
|||
case SPECTRUM_SPAN:
|
||||
uint8_t span = reusableBuffer.spectrumAnalyser.span / 1000000;
|
||||
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);
|
||||
if (menuHorizontalPosition == 1) {
|
||||
if (attr) {
|
||||
reusableBuffer.spectrumAnalyser.span = checkIncDec(event, span, 1, 80, 0) * 1000000;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t peak_y = 1;
|
||||
uint8_t peak_x = 0;
|
||||
for (uint8_t i=0; i<LCD_W; i++) {
|
||||
|
|
|
@ -185,12 +185,13 @@ void processSpectrumAnalyserFrame(uint8_t module, uint8_t * frame)
|
|||
// left = 2440000000 - 20000000
|
||||
// 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));
|
||||
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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue