Page 28 of 39
Re: Универсальный синтезатор Si570/Si5351
Posted: 26 Jul 2021, 17:35
by SWL
Вместо
Code: Select all
if (BandIndex >= 0) {
if (state.VFO[state.VFO_Index] < Bands[BandIndex].start)
state.VFO[state.VFO_Index] =Bands[BandIndex].end ;
else if (state.VFO[state.VFO_Index] > Bands[BandIndex].end)
state.VFO[state.VFO_Index] =Bands[BandIndex].start ;
в TRX.cpp
По ошибке в личку кинул
Уже бегу домой с работы - смогу ответить ближе к 20:00

Re: Универсальный синтезатор Si570/Si5351
Posted: 26 Jul 2021, 17:40
by UR5FFR
В конце пропущена фигурная скобка
Code: Select all
else if (state.VFO[state.VFO_Index] > Bands[BandIndex].end && BandIndex < BAND_COUNT-1) {
Re: Универсальный синтезатор Si570/Si5351
Posted: 26 Jul 2021, 20:43
by SWL
Работает!
Но на первом диапазоне при уменьшении частоты до начала диапазона продолжает до 0 Гц, дальше при продолжении вращения валкодера в ту же сторону начинает увеличивать частоту
Ну и при достижении конца последнего диапазона продолжает расти частота.
До упора вправо не крутил

- боюсь выйти в оптический диапазон
А так работает без проблем
Спасибо!
Re: Универсальный синтезатор Si570/Si5351
Posted: 26 Jul 2021, 22:20
by UR5FFR
Code: Select all
if (state.VFO[state.VFO_Index] < Bands[BandIndex].start) {
if (BandIndex > 0) {
SwitchToBand(BandIndex-1); // переключаем бенд
state.VFO[state.VFO_Index] =Bands[BandIndex].end ; // становимся в конец
} else
state.VFO[state.VFO_Index] =Bands[BandIndex].start ; // становимся в начало
}
else if (state.VFO[state.VFO_Index] > Bands[BandIndex].end) {
if (BandIndex < BAND_COUNT-1) {
SwitchToBand(BandIndex+1); // переключаем бенд
state.VFO[state.VFO_Index] =Bands[BandIndex].start ; // становимся в начало
} else
state.VFO[state.VFO_Index] =Bands[BandIndex].start ; // становимся в начало
}
Re: Универсальный синтезатор Si570/Si5351
Posted: 26 Jul 2021, 22:37
by SWL
С индикацией диапазонов фигня получается, вернее нифига не получается- такой вот когнитивный диссонанс получается
Вкратце чего надо - надо отобразить индикацию диапазонов в зависимости от частоты. Т.е забиваем пределы
частот по достижении которых включается индикация диапазона.
Например от 1810000 до 2000000 включается индикация 160м, при
входе в 49 метровый вещательный - индицирует 49м, в СВ сетка С- индицируем СВС, и т.д.
Вручную в скетч забиваем пределы частот и соответствующую им индикацию.
Именно хочу привязать к частоте, что бы если захочу поменять количество, или разбивку на диапазоны не менять индикацию.
Для любительских можно ввести индикацию по модам или обозначить dx окна, например.
Много чего можно индицировать.
А так на подхвате держу частотные планы на бумаге.
Re: Универсальный синтезатор Si570/Si5351
Posted: 27 Jul 2021, 08:38
by SWL
Код проверю только сегодня вечером- вчера всё повырубал и только потом заметил, что внесены изменения.
Спасибо!
Re: Универсальный синтезатор Si570/Si5351
Posted: 27 Jul 2021, 13:17
by SWL
Андрей!
Подскажите, пожалуйста, как организовать индикацию диапазонов.
Re: Универсальный синтезатор Si570/Si5351
Posted: 27 Jul 2021, 23:12
by SWL
Спасибо, Андрей!
Все прекрасно работает!
Единственное , что я заменил в последней строчке start на end , для остановки в конце последнего диапазона, а то переходил в начало последнего диапазона.
Теперь границы первого и последнего держит, и переходит с диапазона на диапазон при перестройке!
Еще раз спасибо!
UR5FFR wrote:
Code: Select all
} else
state.VFO[state.VFO_Index] =Bands[BandIndex].end ; // становимся в начало
}
Re: Универсальный синтезатор Si570/Si5351
Posted: 28 Jul 2021, 09:30
by SWL
С индикацией диапазонов сделал так:
Code: Select all
{
int bands = 0;
if (trx.state.VFO[trx.GetVFOIndex()] > 1810000 && trx.state.VFO[trx.GetVFOIndex()] < 2000000 )
bands = 160;
else drawBtn(0, 35, 55, 33, " ", ILI9341_BLACK, ILI9341_BLACK);
if (trx.state.VFO[trx.GetVFOIndex()] > 3500000 && trx.state.VFO[trx.GetVFOIndex()] < 3800000 )
bands = 80;
else drawBtn(0, 35, 55, 33, " ", ILI9341_BLACK, ILI9341_BLACK);
if (trx.state.VFO[trx.GetVFOIndex()] > 7000000 && trx.state.VFO[trx.GetVFOIndex()] < 7200000 )
bands = 40;
else drawBtn(0, 35, 55, 33, " ", ILI9341_BLACK, ILI9341_BLACK);
if (trx.state.VFO[trx.GetVFOIndex()] > 14000000 && trx.state.VFO[trx.GetVFOIndex()] < 14350000 )
bands = 20;
else drawBtn(0, 35, 55, 33, " ", ILI9341_BLACK, ILI9341_BLACK);
if (trx.state.VFO[trx.GetVFOIndex()] > 21000000 && trx.state.VFO[trx.GetVFOIndex()] < 21450000 )
bands = 15;
else drawBtn(0, 35, 55, 33, " ", ILI9341_BLACK, ILI9341_BLACK);
unsigned long time = millis ();
if (millis () - time >500)
{
time = millis();
if (bands !=0 ) {
tft.setTextColor(ILI9341_WITE);
tft.setFont(&Tahoma18);
tft.setTextSize(1);
tft.setCursor(0, 70);
tft.print(bands);
}
else {
drawBtn(0, 35, 55, 33, " ", ILI9341_BLACK, ILI9341_BLACK);
}
}
}
Проверил без задержки индикации - мерцают цифры.
С задержкой проверю только вечером.
Направление хоть правильное?
Или не там копаю?
Re: Универсальный синтезатор Si570/Si5351
Posted: 28 Jul 2021, 09:53
by UR5FFR
Вечером гляну - щаз нет времени