Зачем выкидывать? Делают люди ведь:
https://www.youtube.com/watch?v=sXMM3Vinsx0
Зачем выкидывать? Делают люди ведь:
https://www.youtube.com/watch?v=sXMM3Vinsx0
Да это я умею Вот например сейчас у меня работает синтез, настраивается енкодером. И даже шаг переключаю нажатием на енкодер (пока бэнды не определены, далеко иной раз крутить от 1900 до 7076 КГц например)
Но надо еще по длинному нажатию в меню как-то выйти. А там попрыгать, попереключать параметры и в память их по длинному нажатию занести. А еще как-то надо определить есть что в памяти, или я батарейку сменил и память забыла все и надо сбросить настройки на дефолт. И проблема не в написании кода как такового. Проблема в том что я не вижу пока логики связей всего этого. Можно написать как "Индусы" - памяти хватит. Но хочется же что бы и работало шустро и не глючило и исходник что бы не был похож на тестовую страницу матричного принтера....
Просветление, понимаете-ли, никак не приходит
И еще оказалось что часы я запаял, а провода не развел! Но это не так важно сейчас. И про датчик температуры не забыть!!!
Посмотрите эту статью -
https://sohabr.net/habr/post/251181/
На мой взгляд на основе этого кода можно всё что Вам хочется сделать.
Пояснения достаточно исчерпывающие.
Написал! И даже с антизвоном! Если было не нажато и нажалось это нажатие. А если было нажато и отжалось - это отжатие. Если НЕ БЫЛО нажато, то отжатие не срабатывает. И наоборот. Ну и проверка что полсекунды держали. Это пашет без проблем вообще! Буду за меню браться. Но завтра. Полчетвертого уже местное
О! не ожидал гемор, но поморгать одним разрядом на индикаторе непросто
Приветствую всех участников форума. Благодарю за ответы на мои предыдущие вопросы.Особая благодарность за помощь учасникам форума XENOMORPH и UV7QAE.Я искал скетч для управления усилителем
индикации состояния выбранного режима работы и диапазона. Измерение КСВ с отображением на дисплее
в виде цифр и шкалы подобной как на фото. У меня снова возникли вопросы следующего характера-
КАК НАПИСАТЬ КОД ЧТО БЫ ПРИ ПОДАЧЕ НАПРЯЖЕНИЯ НА РАЗНЫЕ ВХОДА ПЛАТЫ Atmega 2560 в правой части
дисплея индицировался выбранный диапазон. Например подано +5 на вход А0 - индицируется диапазон 160
метров. Подано +5 на вход A1-диапазон 80 метров и т.д.
На дисплее видно в прямоугольниках надписи ssb.cw.FM. DIGI.RX.TX. Как сделать эти прямоугольники
другим фоном и на этом фоне были видны эти надписи, а при активации выбранного режима,ПУТЁМ ПОДАЧИ
+5 ВОЛЬТ НА ВХОД (НАПРИМЕР А9) надпись например CW была видима как активная, может быть чтобы
менялся фон или цвет в прямоугольнике, может становился ярче или менял цвет или меняли цвет цифры.
Можно использовать кнопки (в замен подачи напряжений на входа) для управления усилителем-выбором
диапазона и режимом работы.Прикрепляю скетч на фото того что видите.(для TFT ATMEGA2560(красный
ярлык)
может быть кто видел в интернете подобную конструкцию, еси до, то дайте ссылку.
СКЕТЧ на фото слева
#include <UTFT.h>
UTFT myGLCD(CTE32HR, 38, 39, 40, 41);
//ОБЪЯВЛЕНИЕ ВСТРОЕННОГО ШРИФТА
extern uint8_t GroteskBold24x48[];
extern uint8_t Grotesk32x64[];
extern uint8_t SmallFont[];
extern uint8_t hallfetica_normal[];
extern uint8_t Arial_round_16x24[];
void setup()
{
myGLCD.InitLCD(LANDS CAPE);
// очищаем экран
myGLCD.clrScr();
// выбираем тип шрифта
myGLCD.setFont (GroteskBold24x48);
// выбираем цвет шрифта
myGLCD.setColor(VGA_ MAROON);
// печатаем при загрузке ("PA 200 W") в центре верхней строки дисплея
myGLCD.print("PA 200 W", CENTER, 130);
// выбираем цвет шрифта при загрузке "PA 200 W" в центре верхней строки дисплея
myGLCD.setColor(VGA_ LIME);
//время занрузки -в милисекундах (ПРИ ЗАГРУЗКЕ ИДЁТ ПОЛОСА ГОРИЗОНТАЛЬНАЯ)
delay(500);
myGLCD.fillRect(80, 200, 100, 220);
delay(100);
myGLCD.fillRect(80, 200, 150, 220);
delay(100);
myGLCD.fillRect(80, 200, 200, 220);
delay(100);
myGLCD.fillRect(80, 200, 250, 220);
delay(100);
myGLCD.fillRect(80, 200, 300, 220);
delay(100);
myGLCD.fillRect(80, 200, 350, 220);
delay(100);
myGLCD.fillRect(80, 200, 400, 220);
delay(800);
myGLCD.clrScr();
analogReference(INTE RNAL2V56); // активация встроенного опорника MEGA 2560
//////////////////////////////////////////////////////////////////////////////////
//надписи в окнах 1-7 и определение расположения, типа шрифта и цвета
myGLCD.setColor(VGA_ LIME);
myGLCD.setFont( Arial_round_16x24);
myGLCD.print("SSB", 21, 26);
myGLCD.print("FM",97 , 26);
myGLCD.print("RX", 165,26);
myGLCD.print("CW", 28, 75);
myGLCD.print("DIG", 91, 75);
myGLCD.print("TX", 165, 75);
myGLCD.setColor(VGA_ BLUE);
myGLCD.setFont(Grote skBold24x48);
myGLCD.print("160 metr", 240, 58);
myGLCD.setColor(VGA_ LIME);
myGLCD.setFont(Arial _round_16x24);
myGLCD.print("BAND", 240, 25);
//вывод информации о режиме работы PA
// рисую прямоугольники в левой части дисплея для отображения информации о режиме работы PA
myGLCD.setColor(100, 150,200); // цвет прямоугольников
myGLCD.drawRoundRect (20, 20 ,70 ,50); // 1 окно режим SSB
myGLCD.drawRoundRect (140, 20 ,90 ,50); // 2 окно режим CW
myGLCD.drawRoundRect (20, 100 ,70 ,70); // 3 окно режим AM/FM
myGLCD.drawRoundRect (140, 100 ,90 ,70); // 4 окно режим DIGI
myGLCD.drawRoundRect (200, 20 ,160 ,50); // 5 ТХ
myGLCD.drawRoundRect (200, 100 ,160 ,70); // 6 RX
myGLCD.setColor(VGA_ WHITE);
myGLCD.drawRoundRect (11, 110 ,460 ,11); // 6 окно-диапазон (160,80 ит.д.
}
void loop()
{
Последний раз редактировалось RA4HME; 14.10.2017 в 08:27.
Что то мешает сделать прямо в лоб ?
myGLCD.setFont( Arial_round_16x24);
if (digitalRead(A0) == LOW) myGLCD.setColor(VGA_ LIME); else myGLCD.setColor(VGA_ WHITE );
myGLCD.print("SSB", 21, 26);
Спасибо от RA4HME
Здравствуйте! Спасибо R2DHG за помощь. Такой вариант тоже возможен, но при использовании такого варианта будет просто меняться цвет текста, можно сделать заполнение окна нужным текстом, но тогда будет выглядеть некрасиво пустующее окно.(в данном случае SSB). Я хочу сделать так чтобы текст в окнах был неактивный пока не будет включен соответствующий режим. то есть окна имеют какой то бледный фон и на этом фоне надпись и при выборе соответствующего режима цвет окна и надписи становились более чёткими, возможно с изменением цвета. Как в компьютере, если кнопка неактивна,она бледная но видимая, если активна- она четкая и хорошо видимая.
RA4HME,может так вас устроит;
if ( ATT==false ){
ATT = true;// если бит сброшен то устанавливаем его
tft.fillRoundRect(19 ,185,65,40,4,GREEN);
tft.setCursor(33, 199); tft.println("ATT");
goto outATT;}
if ( ATT ==true ){
ATT = false;// если бит установлен то сбрасываем его
tft.fillRoundRect(19 ,185,65,40,4,GREY);
tft.setCursor(33, 199); tft.println("ATT");
}
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)