Так мое предложение было просто как оптимизация по скорости.
А почему не выполняется условие if (newInHamBand != inHamBand) - посмотрите. В конце концов, попробуйте всегда его разрешить и поняблюдайте за повелением.
Так мое предложение было просто как оптимизация по скорости.
А почему не выполняется условие if (newInHamBand != inHamBand) - посмотрите. В конце концов, попробуйте всегда его разрешить и поняблюдайте за повелением.
Спасибо от UN7JID
По поводу изменения цвета при выходе за пределы диапазона. Изначально сделано так: для каждой цифры есть свой флаг предыдущего состояния который препятствует обновлению если цифра не поменялась. (это сделано чтобы небыло мерцания). Для изготовления цвета я бы сделал так: добавил ещё один флаг состояния цвета, если флаг сброшен (для зеленого цвета) и выпоннелось условие выхода за пределы, то пишем в флаги всех цифр число 11 и устанавливаем флаг цвета чтобы не повторять это еще раз.2 условие Если условие выхода за пределы диапазона не выполнено и флаг цвета установлен (тоесть до этого был красный цвет) то сбрасываем его, и пишим в флаги цыфр число 11. Пойже если получится набрасаю код, но проверить не на чем будет.
ПС. Народ читайте документацию, который раз уже читаю за дрель для изменения частоты кварца.
Спасибо от UN7JID
Разобрался с частотами. Все дело в тактовой частоте. При подаче 27 или 30 мГц все работает, проверял до 100 мГц. При 10 мГц максимальная частота с сишки 75 мГц. Так что утроитель надо делать
Владимир, здравствуйте!!! Наконец-то автор до интернета добрался)))
По флагам, пока ещё эту тему не изучал, видимо придется...
Без проблем протестим, все что скажете.если получится набрасаю код, но проверить не на чем будет.
Тормоза, предохранители, презервативы и инструкции придумали трусы!(с)Народ читайте документацию,
Русский человек начинает читать инструкцию только тогда, когда понимает: " Все... трындец... сломал...."(с)
А не проще кварц найти??
Если дело в стабильности, то ИМХО не стоит заморачиваться, стабильности обычного кварца хватит за глаза.
Вы ещё синхронизацию по ЖПС прикрутите.
и еще про косяки в прошивке.
если докрутить частоту до 0, то на дисплее в строке частоты выводится мусор, как будто цифры налазят друг на друга. Частота ручкой при этом двигается, причем можно накрутить значение меньше чем ПЧ. Смена диапазонов или вращение ручки не помогает восстановить индикацию, только сброс.
Спасибо от Falkon
Извините а АД116 работают или в мусорку их ,а новые SI5351 заказывать
Всё!!! Победил!
Обошлось введением одной новой переменной и двух флагов.
Сперва где-нибудь в начале кода, там где задаются переменные ну например в строке 70 или 80, это не принципиально, прописываем флаги:
boolean flag_RED ;
boolean flag_GREEN ;
Потом прописываем где-нибудь там же переменную:
int InHamBand ;
теперь кусок кода:
Скрытый текст
Код://**************** ПРОГРАММА ВЫВОДА НА ДИСПЛЕЙ tft.setTextColor(TFT_GREEN); tft.setFreeFont(FF32); //
Меняем на :
Скрытый текст
Код://**************** ПРОГРАММА ВЫВОДА НА ДИСПЛЕЙ // проверяем границы радиолюбительских диапазонов if ( result0 >= 1800000 & result0 < 1930000) InHamBand = 1; else if ( result0 >= 3500000 & result0 < 3800000) InHamBand = 1; else if ( result0 >= 7000000 & result0 < 7200000) InHamBand = 1; else if ( result0 >= 10100000 & result0 < 10150000) InHamBand = 1; else if ( result0 >= 14000000 & result0 < 14350000) InHamBand = 1; else if ( result0 >= 18068000 & result0 < 18168000) InHamBand = 1; else if ( result0 >= 21000000 & result0 < 21450000) InHamBand = 1; else if ( result0 >= 24890000 & result0 < 24990000) InHamBand = 1; else if ( result0 >= 28000000 & result0 < 29700000) InHamBand = 1; else InHamBand = 0; tft.setFreeFont(FF32); if ( InHamBand !=1 ) {tft.setTextColor(TFT_RED);//если за диапазоном, включаем красный цвет if ( flag_RED == false ) {prev_millions10 = 999;// заставляем перерисовать все цифры prev_millions1 = 999; prev_thousands100 = 999; prev_thousands10 = 999; prev_thousands1 = 999; prev_hundreds = 999; prev_tens = 999; flag_RED = true; flag_GREEN = false;} // Ставим флаг,чтоб больше не переписывать цифры.Заодно сбрасываем флаг в зеленом цвете else { flag_GREEN = false;}} else {tft.setTextColor(TFT_GREEN);//если в диапазоне, включаем зеленый. if (flag_GREEN == false) {prev_millions10 = 999;// заставляем перерисовать все цифры prev_millions1 = 999; prev_thousands100 = 999; prev_thousands10 = 999; prev_thousands1 = 999; prev_hundreds = 999; prev_tens = 999; flag_GREEN = true; flag_RED = false;} // Ставим флаг,чтоб больше не переписывать цифры.Заодно сбрасываем флаг в красном цвете else {flag_RED = false;}}
Грузим в проц, получаем красные цифры за пределами любительских диапазонов
Спасибо Геннадию за идею с переменными и как перекрашивать все цифры и Владимиру за идею с флагами!
ЗЫ. Кому надо желтый цвет просто замените TFT_RED на TFT_YELLOW
А если написать TFT_PINK, получим гламурный розовый цвет)))
Последний раз редактировалось UN7JID; 19.04.2017 в 13:20.
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)