Проблемы с текстом на дисплее.

kn.mas
Offline
Зарегистрирован: 09.02.2019
Добрый день, помогите пожалуйста решить проблему. Дело в том что текст при выполнении условия "if (ST == 1)" накладывается друг на друга,
тем самым получается каша на дисплее. Используемая библиотека iarduino_oled_txt, вывод данных по I2C, дисплей OLED  128×64 / 0,96. 
Пробовал использовать графическую библиотеку, с ней вообще все плохо, даже данные температуры смазываются все.

#include <GyverNTC.h>
    #include <iarduino_OLED_txt.h> 
    GyverNTC therm(0, 10000, 3950);                           
    iarduino_OLED_txt myOLED(0x3C);                                        
    extern uint8_t MediumFontRus[];
void setup() {
    Serial.begin(9600);
    myOLED.begin();                                                    
    myOLED.setFont(MediumFontRus);
    pinMode (4, INPUT);
}
void loop() {
    int ST = digitalRead (4);
    myOLED.print ("ТОЖ", OLED_C, 1);   
    myOLED.print((therm.getTempAverage()) , 35, 4);
    
    if (ST == 1)   {    
    myOLED.print ("Прогрев", OLED_C, 7);
  }
    else {
    myOLED.print ("Запуск", OLED_C, 7);
  }

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, накладывается, а разве Вы его не одно и то же место печатаете? А если на одно, так почему бы ему не накладываться? Стирайте старое перед новой печатью.

Или я чего-то не понял? Тогда давайте фото - что там и как накладывается.

kn.mas
Offline
Зарегистрирован: 09.02.2019

Да оно так и должно на одном и том же месте, одно заменяется другим

sadman41
Offline
Зарегистрирован: 19.10.2016

Возьмите лист бумаги, напишите карандашом слово. Теперь в то же место - другое слово. Все смешалось и непонятна надпись? Почему так и что нужно сделать для исправления ситуации?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Кстати, Ваш код не компилируется. А если добавить в конец } то скомпилируется, но ... вот Вы используете библиотеки от  iarduino и gyver, Вас правда не смущает, что компилятор выдаёт на них вот такую портянку предупреждений?

In file included from D:\ArdLib\Soft\Dump\TryIt\TryIt.ino:1:0:
D:\ArdLib\Soft\libraries\GyverNTC\src/GyverNTC.h: In constructor 'GyverNTC::GyverNTC(byte, int, int, int, int)':
D:\ArdLib\Soft\libraries\GyverNTC\src/GyverNTC.h:52:29: warning: 'GyverNTC::_resistance' will be initialized after [-Wreorder]
     const int _resistance = 10000;
                             ^~~~~
D:\ArdLib\Soft\libraries\GyverNTC\src/GyverNTC.h:50:23: warning:   'const int GyverNTC::_beta' [-Wreorder]
     const int _beta = 0;
                       ^
D:\ArdLib\Soft\libraries\GyverNTC\src/GyverNTC.h:26:5: warning:   when initialized here [-Wreorder]
     GyverNTC(byte pin, int resistance, int beta, int tempBase = 25, int resistBase = 10000) :
     ^~~~~~~~
In file included from D:\ArdLib\Soft\libraries\iarduino_OLED_txt\src/iarduino_OLED_txt.h:21:0,
                 from D:\ArdLib\Soft\Dump\TryIt\TryIt.ino:2:
D:\ArdLib\Soft\libraries\iarduino_OLED_txt\src/iarduino_OLED_txt_I2C.h: In member function 'virtual bool iarduino_I2C::readBytes(uint8_t, uint8_t, uint8_t*, uint8_t)':
D:\ArdLib\Soft\libraries\iarduino_OLED_txt\src/iarduino_OLED_txt_I2C.h:145:29: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
      if (sum) { if(TWSR&0xF8!=0x50) {  i=0;}}    // Если после чтения очередного байта пакета значение регистра состояния шины I2C Arduino TWSR с маской 0xF8 не равно 0x50 значит произошла ошибка при чтении
                         ~~~~^~~~~~
D:\ArdLib\Soft\libraries\iarduino_OLED_txt\src/iarduino_OLED_txt_I2C.h:146:26: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
      else  { if(TWSR&0xF8!=0x58) {  i=0;}}    // Если после чтения последного байта пакета значение регистра состояния шины I2C Arduino TWSR с маской 0xF8 не равно 0x58 значит произошла ошибка при чтении
                      ~~~~^~~~~~
D:\ArdLib\Soft\libraries\iarduino_OLED_txt\src/iarduino_OLED_txt_I2C.h: In member function 'virtual bool iarduino_I2C::readBytes(uint8_t, uint8_t*, uint8_t)':
D:\ArdLib\Soft\libraries\iarduino_OLED_txt\src/iarduino_OLED_txt_I2C.h:168:29: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
      if (sum) { if(TWSR&0xF8!=0x50) {  i=0;}}    // Если после чтения очередного байта пакета значение регистра состояния шины I2C Arduino TWSR с маской 0xF8 не равно 0x50 значит произошла ошибка при чтении
                         ~~~~^~~~~~
D:\ArdLib\Soft\libraries\iarduino_OLED_txt\src/iarduino_OLED_txt_I2C.h:169:26: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
      else  { if(TWSR&0xF8!=0x58) {  i=0;}}    // Если после чтения последного байта пакета значение регистра состояния шины I2C Arduino TWSR с маской 0xF8 не равно 0x58 значит произошла ошибка при чтении
                      ~~~~^~~~~~
In file included from D:\ArdLib\Soft\libraries\iarduino_OLED_txt\src\iarduino_OLED_txt.h:21:0,
                 from D:\ArdLib\Soft\libraries\iarduino_OLED_txt\src\iarduino_OLED_txt.cpp:1:
D:\ArdLib\Soft\libraries\iarduino_OLED_txt\src/iarduino_OLED_txt_I2C.h: In member function 'virtual bool iarduino_I2C::readBytes(uint8_t, uint8_t, uint8_t*, uint8_t)':
D:\ArdLib\Soft\libraries\iarduino_OLED_txt\src/iarduino_OLED_txt_I2C.h:145:29: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
      if (sum) { if(TWSR&0xF8!=0x50) {  i=0;}}    // Если после чтения очередного байта пакета значение регистра состояния шины I2C Arduino TWSR с маской 0xF8 не равно 0x50 значит произошла ошибка при чтении
                         ~~~~^~~~~~
D:\ArdLib\Soft\libraries\iarduino_OLED_txt\src/iarduino_OLED_txt_I2C.h:146:26: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
      else  { if(TWSR&0xF8!=0x58) {  i=0;}}    // Если после чтения последного байта пакета значение регистра состояния шины I2C Arduino TWSR с маской 0xF8 не равно 0x58 значит произошла ошибка при чтении
                      ~~~~^~~~~~
D:\ArdLib\Soft\libraries\iarduino_OLED_txt\src/iarduino_OLED_txt_I2C.h: In member function 'virtual bool iarduino_I2C::readBytes(uint8_t, uint8_t*, uint8_t)':
D:\ArdLib\Soft\libraries\iarduino_OLED_txt\src/iarduino_OLED_txt_I2C.h:168:29: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
      if (sum) { if(TWSR&0xF8!=0x50) {  i=0;}}    // Если после чтения очередного байта пакета значение регистра состояния шины I2C Arduino TWSR с маской 0xF8 не равно 0x50 значит произошла ошибка при чтении
                         ~~~~^~~~~~
D:\ArdLib\Soft\libraries\iarduino_OLED_txt\src/iarduino_OLED_txt_I2C.h:169:26: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
      else  { if(TWSR&0xF8!=0x58) {  i=0;}}    // Если после чтения последного байта пакета значение регистра состояния шины I2C Arduino TWSR с маской 0xF8 не равно 0x58 значит произошла ошибка при чтении
                      ~~~~^~~~~~
D:\ArdLib\Soft\libraries\iarduino_OLED_txt\src\iarduino_OLED_txt.cpp: In member function 'char* iarduino_OLED_txt::_codingCP866(char*)':
D:\ArdLib\Soft\libraries\iarduino_OLED_txt\src\iarduino_OLED_txt.cpp:216:34: warning: comparison is always true due to limited range of data type [-Wtype-limits]
       if(charThis>=0xF0&&charThis<=0xFF){StrOut[numOut]=charThis-0x10;}else       // Если код текущего символа равен 240...255, значит это буква «р»...«я» требующая преобразования к коду 224...239
                          ~~~~~~~~^~~~~~
Скетч использует 13188 байт (42%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 307 байт (14%) динамической памяти, оставляя 1741 байт для локальных переменных. Максимум: 2048 байт.

Вы считаете допустимым использование кода такого качества?

kn.mas
Offline
Зарегистрирован: 09.02.2019

Хорошо, тогда скажи какую надо использовать библиотеку для работы с NTC термистором, и данным дисплеем??? что-бы не выдавала  "вот такую портянку предупреждений?"??????

kn.mas
Offline
Зарегистрирован: 09.02.2019

По этому я сюда и пишу, спросить как стереть строку, а не сидеть твои остроумные мысли тут читать

sadman41
Offline
Зарегистрирован: 19.10.2016

Не вижу вопроса, только требования жопу подтереть.

kn.mas
Offline
Зарегистрирован: 09.02.2019

Ну это твои проблемы раз ты не видишь вопроса, другие увидят. Тебя ни кто не заставлял сюда чет писать, если не нравится чего то иди куда шел

kn.mas
Offline
Зарегистрирован: 09.02.2019

Туалетную бумагу тебе еще тут не дали, и ни кто не написал про требование жопу подтереть. Вспомни себя сначала как ты начинал, как учился, и какие ошибки совершал, а потом пиши тут свои остроумные мысли

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

kn.mas пишет:
тогда скажи какую надо использовать библиотеку для работы с NTC термистором, и данным дисплеем???
Не знаю.

Кстати мы давно "на ты", а то что-то "не узнаю Вас в гриме"?

kn.mas пишет:

По этому я сюда и пишу, спросить как стереть строку

Покажите пожалуйста, в каком именно посте Вы задавали этот вопрос? Я, наверное, не заметил и пропустил.

Кстати, если бы Вас это действительно интересовало и Вы бы задали такой вопрос, я бы ответил. Но после Вашего

kn.mas пишет:

а не сидеть твои остроумные мысли тут читать

ответ будет один: не нравится - не читайте. Разбирайтесь сами.

Всего доброго!

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

kn.mas пишет:

Ну это твои проблемы раз ты не видишь вопроса, другие увидят. 

Нет, теперь не увидят.  Иди сразу на другой форум, здесь для тебя рыбы нет. 

kn.mas
Offline
Зарегистрирован: 09.02.2019

На форумах наверное помогают людям с решением проблемы, а не гасят его

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Ты правильно сказал:

kn.mas пишет:

... помогают людям

тебе теперь - нет. 

kn.mas
Offline
Зарегистрирован: 09.02.2019

Понятно все, удачи 

b707
Offline
Зарегистрирован: 26.05.2017

ну и дебил... вместо того чтоб нормально вопрос задать - начал права качать.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

b707 пишет:

ну и дебил... вместо того чтоб нормально вопрос задать - начал права качать.

"Стаж!"