Re: VU meter + oled 0.96'

Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
forum.rcl-radio.ru → Тестирование скетчей → VU meter + oled 0.96'

tft.drawLine(a1_old+18, a2_old+82, hMeter+18, vMeter+82, ST77XX_BLACK);
tft.drawLine(a1_old+18, a2_old+82, hMeter+18, vMeter+82+1, ST77XX_BLACK);
tft.drawLine(a1+18, a2+82, hMeter+18, vMeter+82, ST77XX_BLUE);
tft.drawLine(a1+18, a2+82, hMeter+18, vMeter+82+1, ST77XX_BLUE);
//display.drawLine(a3, a4, hMeter_two, vMeter_two, 1);
a1_old = a1;
a2_old = a2;
Справа в крайнем правом положении две еле заметные линии,на них не обращаем внимание(стрелка двигается,телефон так сфоткал). А вот по центру 5 полос и в крайнем левом углу 1 полоса,это почему то не затирается ,после того как стрелка проехала с крайних положений.
tft.drawLine(a1_old+18, a2_old+82, hMeter+18, vMeter+82, ST77XX_BLACK);
tft.drawLine(a1_old+18, a2_old+82, hMeter+18, vMeter+82+1, ST77XX_BLACK);tft.drawLine(a1+18, a2+82, hMeter+18, vMeter+82, ST77XX_BLUE);
tft.drawLine(a1+18, a2+82, hMeter+18, vMeter+82+1, ST77XX_BLUE);
//display.drawLine(a3, a4, hMeter_two, vMeter_two, 1);
a1_old = a1;
a2_old = a2;
условие убираем ?
да
Добавил ,стало опять полностью затирать,но крайнем левом положении стрелка опять мерцает.
меняйте местами куда добавить 1
tft.drawLine(a1_old+18, a2_old+82, hMeter+18, vMeter+82, ST77XX_BLACK);
tft.drawLine(a1_old+18, a2_old+82, hMeter+18, vMeter+82+1, ST77XX_BLACK);
tft.drawLine(a1+18, a2+82, hMeter+18, vMeter+82, ST77XX_BLUE);
tft.drawLine(a1+18, a2+82, hMeter+18, vMeter+82+1, ST77XX_BLUE);
или так
tft.drawLine(a1_old+18, a2_old+82, hMeter+18, vMeter+82, ST77XX_BLACK);
tft.drawLine(a1_old+18, a2_old+82, hMeter+18+1, vMeter+82, ST77XX_BLACK);
tft.drawLine(a1+18, a2+82, hMeter+18, vMeter+82, ST77XX_BLUE);
tft.drawLine(a1+18, a2+82, hMeter+18+1, vMeter+82, ST77XX_BLUE);
или так
tft.drawLine(a1_old+18, a2_old+82, hMeter+18, vMeter+82, ST77XX_BLACK);
tft.drawLine(a1_old+18, a2_old+82, hMeter+18+1, vMeter+82+1, ST77XX_BLACK);
tft.drawLine(a1+18, a2+82, hMeter+18, vMeter+82, ST77XX_BLUE);
tft.drawLine(a1+18, a2+82, hMeter+18+1, vMeter+82+1, ST77XX_BLUE);
Проверил все три варианта,все равно мигает стрелка ,когда стоит в крайнем левом углу. Я так понимаю,когда стрелка стоит на месте,то она затирается и тут же заливается синим периодически ,из-за этого моргает видимо.
В мониторе порта надо посмотреть значения а1 и а2 при положении стрелки в крайнем левом, и создать условие что бы при этих значениях не затирало стрелку.
Если создать условие не затирать крайнее левое положение,то останется не затертой стрелка,когда она начнет принимать другое положение.
Нужно еще какое то условие ,при котором говорить ,когда нужно затирать крайнее левое положение ,а когда нет. Только не соображу какое условие.
Если создать условие не затирать крайнее левое положение,то останется не затертой стрелка,когда она начнет принимать другое положение.
a1_old = a1;
a2_old = a2;
эти переменные сохранят значения когда стрелка слева, поэтому затирание должно произойти
Если создать условие не затирать крайнее левое положение,то останется не затертой стрелка,когда она начнет принимать другое положение.
a1_old = a1;
a2_old = a2;эти переменные сохранят значения когда стрелка слева, поэтому затирание должно произойти
Хорошо,вечером буду дома ,попробуем.
Александр ,добрый вечер. Видимо не то условие делаю. Не затирает.В мониторе порта 8 и 28 значение а1,а2.
if(a1 !=8 and a2 !=28){
tft.drawLine(a1_old+18, a2_old+82, hMeter+18, vMeter+82, ST77XX_BLACK);}
tft.drawLine(a1+18, a2+82, hMeter+18, vMeter+82, ST77XX_BLUE);
//display.drawLine(a3, a4, hMeter_two, vMeter_two, 1);
a1_old = a1;
a2_old = a2;Через монитор порта посмотрел ,в крайнем левом положении а1 = 8 , а2 = 28.
if(a1 !=8 && a2 !=28){
tft.drawLine(a1_old+18, a2_old+82, hMeter+18, vMeter+82, ST77XX_BLACK);}
tft.drawLine(a1+18, a2+82, hMeter+18, vMeter+82, ST77XX_BLUE);
//display.drawLine(a3, a4, hMeter_two, vMeter_two, 1);
a1_old = a1;
a2_old = a2;

оставляет ,не затирает,при таком условии.Даже уже и не знаю что делать.
if(a1 !=8 && a2 !=28){
tft.drawLine(a1_old+18, a2_old+82, hMeter+18, vMeter+82, ST77XX_BLACK);}
if(a1 >8 && a2 >28){
tft.drawLine(8+18, 28+82, hMeter+18, vMeter+82, ST77XX_BLACK);}
Все равно не затирает
Через монитор порта посмотрел ,в крайнем левом положении а1 = 8 , а2 = 28.
может не те значения?
Да вроде те значения 
if(a1<8){a1=8;}
if(a2<28){a2=28;}
if(a1 !=8 && a2 !=28){
tft.drawLine(a1_old+18, a2_old+82, hMeter+18, vMeter+82, ST77XX_BLACK);}
tft.drawLine(a1+18, a2+82, hMeter+18, vMeter+82, ST77XX_BLUE);
//display.drawLine(a3, a4, hMeter_two, vMeter_two, 1);
a1_old = a1;
a2_old = a2;
Срез сверху всех полос и не убираются 
???
if(a1<8){a1=8;}
if(a2<28){a2=28;}
Я не понимаю, почему не работает, это же просто условие если а1<8, то а1=8
forum.rcl-radio.ru → Тестирование скетчей → VU meter + oled 0.96'
Форум работает на PunBB, при поддержке Informer Technologies, Inc
|
|