26

Re: VU meter + oled 0.96'

http://forum.rcl-radio.ru/uploads/images/2026/02/57aa9f4ef0c0ad8e1daaf876125f85c3.jpg

27

Re: 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;

28

Re: VU meter + oled 0.96'

Справа в крайнем правом положении две еле заметные линии,на них не обращаем внимание(стрелка двигается,телефон так сфоткал). А вот по центру 5 полос и в крайнем левом углу 1 полоса,это почему то не затирается ,после того как стрелка проехала с крайних положений.

29

Re: VU meter + oled 0.96'

liman324 пишет:

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;

условие убираем ?

30

Re: VU meter + oled 0.96'

да

31

Re: VU meter + oled 0.96'

Добавил ,стало опять полностью затирать,но крайнем левом положении стрелка опять мерцает.

32

Re: VU meter + oled 0.96'

меняйте местами куда добавить 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);

33 (2026-02-18 17:39:12 отредактировано honda473)

Re: VU meter + oled 0.96'

Проверил все три варианта,все равно мигает стрелка ,когда стоит в крайнем левом углу. Я так понимаю,когда стрелка стоит на месте,то она затирается и тут же заливается синим периодически ,из-за этого моргает видимо.

34

Re: VU meter + oled 0.96'

В мониторе порта надо посмотреть значения а1 и а2 при положении стрелки в крайнем левом, и создать условие что бы при этих значениях не затирало стрелку.

35

Re: VU meter + oled 0.96'

Если создать условие не затирать крайнее левое положение,то останется не затертой стрелка,когда она начнет принимать другое положение.

36

Re: VU meter + oled 0.96'

Нужно еще какое то условие ,при котором говорить ,когда нужно затирать крайнее левое положение ,а когда нет. Только не соображу какое условие.

37

Re: VU meter + oled 0.96'

Если создать условие не затирать крайнее левое положение,то останется не затертой стрелка,когда она начнет принимать другое положение.

a1_old = a1;
a2_old = a2;

эти переменные сохранят значения когда стрелка слева, поэтому затирание должно произойти

38

Re: VU meter + oled 0.96'

liman324 пишет:

Если создать условие не затирать крайнее левое положение,то останется не затертой стрелка,когда она начнет принимать другое положение.

a1_old = a1;
a2_old = a2;

эти переменные сохранят значения когда стрелка слева, поэтому затирание должно произойти

Хорошо,вечером буду дома ,попробуем.

39 (2026-02-19 13:53:59 отредактировано honda473)

Re: VU meter + oled 0.96'

Александр ,добрый вечер. Видимо не то условие делаю. Не затирает.В мониторе порта 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;

40

Re: VU meter + oled 0.96'

Через монитор порта посмотрел ,в крайнем левом положении а1 = 8 , а2 = 28.

41

Re: VU meter + oled 0.96'

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;

42

Re: VU meter + oled 0.96'

http://forum.rcl-radio.ru/uploads/images/2026/02/7ac131761038dcfbe715dcf5bf2d2138.jpg

43

Re: VU meter + oled 0.96'

оставляет ,не затирает,при таком условии.Даже уже и не знаю что делать.

44

Re: VU meter + oled 0.96'

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);}

45

Re: VU meter + oled 0.96'

Все равно не затираетhttp://forum.rcl-radio.ru/uploads/images/2026/02/cb0cb4b2dbbd5c973b8e963ff5d960de.jpg

46

Re: VU meter + oled 0.96'

Через монитор порта посмотрел ,в крайнем левом положении а1 = 8 , а2 = 28.

может не те значения?

47

Re: VU meter + oled 0.96'

Да вроде те значения http://forum.rcl-radio.ru/uploads/images/2026/02/c1321caea8ad19bb5fe5bf2cf22da53a.jpg

48

Re: VU meter + oled 0.96'

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;

49

Re: VU meter + oled 0.96'

Срез сверху всех полос и не убираются http://forum.rcl-radio.ru/uploads/images/2026/02/052f7b555aa30b090b275f1bc02d65e2.jpg

50

Re: VU meter + oled 0.96'

???

if(a1<8){a1=8;}
if(a2<28){a2=28;}

Я не понимаю, почему не работает, это же просто условие если а1<8, то а1=8