UTFT tutch screen

kmk
Offline
Зарегистрирован: 22.09.2015

Помогите, как записать данные с запятой

Когда LCD дисплей там работает float

здесь float работает, но на экране только целые числа.

kmk
Offline
Зарегистрирован: 22.09.2015

кто знает как увеличить размер фонта?

kmk
Offline
Зарегистрирован: 22.09.2015

kmk пишет:

Помогите, как записать данные с запятой

Когда LCD дисплей там работает float

здесь float работает, но на экране только целые числа.

 

 

Нашёл: нужно писать    myGLCD.printNumF(X, 0, 80, 150); 

F - тогда читает с запятой

kmk
Offline
Зарегистрирован: 22.09.2015

осталась последняя загвоздка, прописал 1 знак после запятой, а выскакивает больше чем один

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

 

Evdoc
Offline
Зарегистрирован: 21.04.2015

У меня другая проблема.

Una + tft 2.4 c тачем.

Немогу вывести изменяемое число вообще.

При нажатии на дисплей в разных местах число должно уменьшаться или увеличиваться на определенную дельту.

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

текст прилогаю. Уже весь мозг убил.

#include <MCUFRIEND_kbv.h>
#include <mcufriend_serial.h>
#include <mcufriend_shield.h>
#include <mcufriend_special.h>
#include <UTFTGLUE.h>
#include <TouchScreen.h>
#include <Adafruit_GFX.h>
#include "SWTFT.h"
 
MCUFRIEND_kbv tft;
//SWTFT tft;
 
 
uint8_t YP = A1;  // must be an analog pin, use "An" notation!
uint8_t XM = A2;  // must be an analog pin, use "An" notation!
uint8_t YM = 7;   // can be a digital pin
uint8_t XP = 6;   // can be a digital pin
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
 
#define TS_MINX 150
#define TS_MINY 120
#define TS_MAXX 920
#define TS_MAXY 940
 
// Assign human-readable names to some common 16-bit color values:
#define BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF
 
float sp=22;
uint16_t sp1 = 22.00;
unsigned long lsp;
float dp=0.1;
 
void setup() {
 
 // управление TFT дисплеем
// сброс дисплея
tft.reset();
uint16_t identifier = tft.readID();
tft.begin(0x9341); // включение дисплея 
 
Serial.begin(9600);
Serial.print(identifier, HEX);
  
  tft.fillScreen(BLACK);
  tft.setRotation(1);
  
 
 
/* Прямоугольник с центром Х,У
 *                 Ширина, Высота, радиус закругленных краев
 *                 цвет
 */
 // Установка зоны отображения температуры 
  tft.drawRoundRect(10, 10, 145, 50, 5, WHITE);
    tft.setCursor(15, 65);
    tft.setTextSize(2);
    tft.setTextColor(YELLOW);
    tft.print("Temperature");
    
    // Установка зоны отображения влажности
  tft.drawRoundRect(165, 10, 145, 50, 5, WHITE);
    tft.setCursor(190, 65);
    tft.setTextSize(2);
    tft.setTextColor(YELLOW);
    tft.print("Humidity");
 
    // Установка зоны отображения уставки
  tft.drawRoundRect(10, 85, 145, 50, 5, WHITE);
 
   // Установка зоны для увеличения уставки
  tft.drawRoundRect(10, 145, 145, 90, 5, GREEN);
    tft.setCursor(55, 155);
    tft.setTextSize(11);
    tft.setTextColor(GREEN);
    tft.print("+");
 
    //Установка зоны для уменьшения уставки
  tft.drawRoundRect(165, 145, 145, 90, 5, RED);
    tft.setCursor(210, 155);
    tft.setTextSize(11);
    tft.setTextColor(RED);
    tft.print("-");
 
    // Отображение зоны управляемой мощности
    
}
 
#define MINPRESSURE 10
#define MAXPRESSURE 1000
 
 
void loop() {
 
    Serial.print("sp= ");
    Serial.println(sp);
    
        
/* Проверка было ли косание на экран
 *  считываются координаты
 */ 
   TSPoint p = ts.getPoint();
if (p.z > MINPRESSURE && p.z < MAXPRESSURE)
{
 
   p.x = map(p.x, TS_MINX, TS_MAXX, tft.width(), 0);
   p.y = map(p.y, TS_MINY, TS_MAXY, tft.height(), 0);
      
   //Проверка нажата облать прибавления?
   if ((p.x > 30) and (p.x < 150) and (p.y > 10) and (p.y < 70)) sp=sp+0.1;
   
    //Проверка нажата облать вычитания?
   if ((p.x > 200) and (p.x < 300) and (p.y > 10) and (p.y < 70)) sp=sp-0.1;
 
   sp=sp;  
   tft.setTextColor(WHITE);
   tft.setTextSize(4);
   tft.setCursor(17, 95);
   tft.print(sp);  
 }  
 sp=sp;
    tft.setTextColor(WHITE);
    tft.setTextSize(4);
    tft.setCursor(17, 95);
    tft.print(sp);
    delay(200);
    
 
}
 
Дайте совет.
по моим ощущениям TSPoint p = ts.getPoint(); все портит - но тогда как считывать координаты?
Спасибо.