Page 8 of 39

Re: Универсальный синтезатор Si570/Si5351

Posted: 17 Mar 2021, 23:32
by UR5VCP
Все принято!

Re: Универсальный синтезатор Si570/Si5351

Posted: 24 Mar 2021, 15:52
by UR5VCP
Андрей Николаевич, что я не так делаю?... Вот:

if (trx.TX){
long valf = inFWD.Read();
if (valf < 100) trx.FWD = 0;
if (valf >= 100 && valf < 300) trx.FWD = 1;
if (valf >= 300 && valf < 500) trx.FWD = 2;
if (valf >= 500 && valf < 700) trx.FWD = 3;
if (valf >= 700 ) trx.FWD = 4;

long valr = inREV.Read();
float vals = (valf+valr)/(valf-valr);
if (vals < 2) trx.REV = 0;
if (vals >= 2 && vals < 3) trx.REV = 1;
if (vals >= 3 && vals < 4) trx.REV = 2;
if (vals >= 4) trx.REV = 3;


/*
Serial.print(" val forw ");
Serial.print(valf);
Serial.print(" val rev ");
Serial.print(valr);
Serial.print(" val s ");
Serial.print(vals);
Serial.print(" FWD ");
Serial.print(trx.FWD);
Serial.print(" REV ");
Serial.print(trx.REV);
Serial.println();
*/

}

В консоль (ну если комент снять) выдает значения vals типа 1,00 2,00 3,00 а вот 1,50 или любое дробное не могеть выдать. Хотя значения с аналогов правильно считывает. У меня вечно траблы с математикой на ардуино...

Re: Универсальный синтезатор Si570/Si5351

Posted: 24 Mar 2021, 17:50
by PupkinAlex
UR5VCP wrote: а вот 1,50 или любое дробное не могеть выдать.
При таком делении у вас не будет дробного результата
UR5VCP wrote: float vals = (valf+valr)/(valf-valr);
т.к. делимое и делитель являются целыми числами (тип long).
Операторы +, -, * и / соответственно, возвращают результат выполнения арифметических действий над двумя операндами. Возвращаемый результат будет зависеть от типа данных операндов, например, 9 / 4 возвратит 2, т.к. операнды 9 и 4 имеют тип int.
Если один из операндов имеет тип float или double, то арифметика "с плавающей запятой" будет использована для вычислений.

Re: Универсальный синтезатор Si570/Si5351

Posted: 24 Mar 2021, 18:57
by UR5VCP
valf valr в диапазоне 0-4000, попробую сделать или явное преобразование, или обьявить их тогда плавающими... В чистом С это все проще вроде как бы... хотя тут по сути то же..
Спасибо за подсказку, может таки ксв будет более точно показывать, а то градация очень уж крупная, мне не интересно так, а вот до 1.5, до 2, до 2.5, до 3, и выше 3 будет самое то...

Re: Универсальный синтезатор Si570/Si5351

Posted: 25 Mar 2021, 11:09
by PupkinAlex
UR5VCP wrote:valf valr в диапазоне 0-4000, попробую сделать или явное преобразование, или обьявить их тогда плавающими...
Наверное, проще и логичнее сразу объявить как float. Меньше кода, да и лишними операциями (преобразование) не будет грузить ардуино.

P.S. Очень интересно взглянуть на реализацию вывода мощности и КСВ на дисплей.
По окончании "полировки" выложите сюда код, пожалуйста.

Re: Универсальный синтезатор Si570/Si5351

Posted: 30 Mar 2021, 16:50
by UR5VCP
мне не жалко )) выложу, а видео есть, там где на ТХ работает трансивер там видно все. Ну уже доделаю все по божески, а то меня работой привалило ))))

Re: Универсальный синтезатор Si570/Si5351

Posted: 30 Mar 2021, 17:09
by Alexlon
Добрый день.
Скиньте ссылку на новую прошивку, пжлст. Крайняя версия, которую удалось скачать - v3.2.1 from 9.06.2020.
Спасибо.

Re: Универсальный синтезатор Si570/Si5351

Posted: 30 Mar 2021, 17:54
by UR5FFR
Свежая версия прошивки всегда тут https://github.com/andrey-belokon/Syntez_Si5351_Si570

Re: Универсальный синтезатор Si570/Si5351

Posted: 30 Mar 2021, 21:14
by EW2DZ
Андрей, а РТТ через САТ не организован? Нужно использовать сигналы RTS, или DTR?

Re: Универсальный синтезатор Si570/Si5351

Posted: 30 Mar 2021, 21:18
by UR5FFR
Нет, PTT не поддерживается. CAT больше для поддержки логеров