Odeslat nové téma Odpovědět na téma  [ Příspěvků: 9 ] 
Autor Zpráva
PříspěvekNapsal: čtv 22.11.2018 9:39 
Zkušený debatér
Zkušený debatér
Uživatelský avatar

Registrován: 9.2.2012
Příspěvky: 327
Bydliště: Louny
Zdravím,
hraju si s TFT displejem a hodinami. Chci zobrazit na displeji aktualní čas, ale v kodu mám nějakou chybu. Čas se zobrazuje, ale čísla se nepřepisují korektě, "mastí" se přez sebe.
Dokážete mi prosím někdo poradit ? Děkuji.

__________________________________________________________________________

#include <Wire.h>
#include "RTClib.h"

#include <Adafruit_GFX.h>
#include <Adafruit_TFTLCD.h>


RTC_DS1307 DS1307;



char datumCas[100];
char cas[120];

#define LCD_CS A3
#define LCD_CD A2
#define LCD_WR A1
#define LCD_RD A0
#define LCD_RESET A4

#define cerna 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF

Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);

void setup() {

tft.reset();
tft.begin(0x9481);
tft.setRotation(1);
tft.setTextSize(4);
tft.drawRect(0,0,480,320,cerna);
// komunikace přes sériovou linku rychlostí 9600 baud
Serial.begin(9600);
// kontrola připojeného obvodu reálného času
if (! DS1307.begin()) {
Serial.println("Hodiny nejsou pripojeny!");
while (1);
}
// kontrolu spuštění obvodu reálného času
if (! DS1307.isrunning()) {
Serial.println("Hodiny nejsou spusteny! Spoustim nyni..");
}
// pro nastavení času v obvodu reálného času použijte jednorázově(!)
// následující příkaz v pořadí rok, měsíc, den, hodina, minuta, vteřina
// příklad: 26.4.2016 9:10:11
//DS1307.adjust(DateTime(2018, 11, 16, 10, 36, 30));


}

void loop()
{

// načtení aktuálního času a data do proměnné datumCas
DateTime datumCas = DS1307.now();
sprintf(cas, "%02d:%02d:%02d", datumCas.hour(),datumCas.minute(),datumCas.second());

tft.setCursor(80,100);
tft.setTextColor(WHITE);
tft.print (cas);
tft.setCursor(180,150);

delay (1000);

}

_________________
Turnigy 9x, V 911, V 939, Quad 230 KK.2 LCD , Quad 470 APM 2.5, BIXLER 2


Nahoru
 Profil {RCalbum.cz}  
 
 
PříspěvekNapsal: čtv 22.11.2018 10:37 
Mazák
Mazák
Uživatelský avatar

Registrován: 26.5.2013
Příspěvky: 1059
Bydliště: Brno
vlkodlak píše:
...

Nevím, jak knihovna spolupracuje s driverem displeje, ale obecně platí, že si ovladač driveru uloží požadované znaky do paměti, dle které je potom driver zobrazuje aktivací příslušných segmentů na displeji. V textovém režimu je vcelku jasné, že znaky přepisuje komplet, to znamená, že celou matici přepíše. V grafickém režimu se ale může stát, že aktivuje pouze segmenty nutné pro zobrazení nového znaku, ale nepřepisuje všechny segmenty v dané matici. Neboli nakonec rozsvítí takřka vše. Takže bych hledal problém v nastavení režimu displeje. A nebo před zobrazením nového znaku zobrazit předchozí znak barvou pozadí a teprve poté nový znak bílou barvou.

_________________
MC-20HOTT,DS-16,X10S,S-trino MkII,RCF Sbach, MXS 64",Maat,250 Race,LOGO550SE,Goblin570


Nahoru
 Profil  
 
PříspěvekNapsal: čtv 22.11.2018 10:45 
Moderátor serveru
Moderátor serveru
Uživatelský avatar

Registrován: 16.8.2008
Příspěvky: 6798
Bydliště: Moravský kras
B. je pravda, u grafického displeje si ten kousek místa musíš před přepsáním smáznout, v knihovně na to bude určitě funkce (přinejhorším obdélník s barvou okraje i výplně shodnou s barvou pozadí).

_________________
OK2WY


Nahoru
 Profil  
 
PříspěvekNapsal: čtv 22.11.2018 10:58 
Mazák
Mazák
Uživatelský avatar

Registrován: 12.2.2016
Příspěvky: 849
Bydliště: Vysočina
... a nebo jednoduše těsně před tiskem dalšího času přetisknout ten starý barvou pozadí. (Mělo by se to trochu upravit - blikání.)


Nahoru
 Profil  
 
PříspěvekNapsal: čtv 22.11.2018 11:13 
Mazák
Mazák
Uživatelský avatar

Registrován: 26.5.2013
Příspěvky: 1059
Bydliště: Brno
Každopádně záleží na tom, jak je napsaná knihovna.

_________________
MC-20HOTT,DS-16,X10S,S-trino MkII,RCF Sbach, MXS 64",Maat,250 Race,LOGO550SE,Goblin570


Nahoru
 Profil  
 
PříspěvekNapsal: čtv 22.11.2018 11:34 
Mazák
Mazák
Uživatelský avatar

Registrován: 12.2.2016
Příspěvky: 849
Bydliště: Vysočina
Měl bych dvě proměnné DateTime. V jedné poslední tisknutý čas, v druhé aktuální (čteno ve smyčce). Tisk po změně, starý barvou pozadí......a zase čekat na změnu.
Mělo by to fungovat bez ohledu na knihovnu uspokojivě.


Nahoru
 Profil  
 
PříspěvekNapsal: čtv 22.11.2018 11:42 
Moderátor serveru
Moderátor serveru
Uživatelský avatar

Registrován: 16.8.2008
Příspěvky: 6798
Bydliště: Moravský kras
ellet píše:
Měl bych dvě proměnné DateTime. V jedné tisknutý čas, v druhé aktuální (čteno ve smyčce). Tisk po změně, starý barvou pozadí......a zase čekat na změnu.
Mělo by to fungovat bez ohledu na knihovnu uspokojivě.


Tak to je snad nejhorší možné řešení z hlediska času :) Vykreslovat font podruhý, to trvá podstatně dýl, než to přeplácnout obdélníkem, to se nediv že to bliká..

_________________
OK2WY


Nahoru
 Profil  
 
PříspěvekNapsal: čtv 22.11.2018 11:51 
Mazák
Mazák
Uživatelský avatar

Registrován: 12.2.2016
Příspěvky: 849
Bydliště: Vysočina
JirkaA píše:
Tak to je snad nejhorší možné řešení z hlediska času :) Vykreslovat font podruhý, to trvá podstatně dýl, než to přeplácnout obdélníkem, to se nediv že to bliká..
Jestli to bliká, jsem nezkoušel a zkoušet nebudu. Tisk ve smyčce a mezitím mazání (bez ohledu na změnu tisknuté veličiny) k blikání nebo snížení jasu asi povede ať je rychlost jakákoli. I pomalejší tisk po změně (t.j. po vteřině) bude prakticky neznatelný. Důležitý vidím to po změně (a vystačí s tím co zná a má).
Proti rychlejšímu mazání ale nic nemám :)
(Teď ale dodatečně koukám, že jsem na konci přehlídl ten delay(1000), stejně bych to vyhodil.)


Nahoru
 Profil  
 
PříspěvekNapsal: čtv 13.12.2018 13:11 
Mazák
Mazák
Uživatelský avatar

Registrován: 21.6.2008
Příspěvky: 4644
Bydliště: Praha ČR
Poznámka na okraj - teď nedávno jsem si u Arduina trochu naběhl s OLED displejem, kdy po upgradu Arduino IDE na 1.8 to totálně tuhlo a padalo (přitom šlo o kód dříve perfektně funkční). Ukázalo se, že s novým IDE kraví knihovny pro něj - GFX, adafruit atd. Po nějaké době vylezl upgrade jak IDE, tak knihoven a řekl bych, že nyní už to vše chodí,dobře.
Berte jen jako obecné upozornění - zjevně ten poslední upgrade Arduino IDE nebyl úplně bez bolestí a měl i dopady do knihoven, při nějakých nejasnostech zkuste projít Library Manager a aktualizovat..


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 9 ] 

 


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  

 

  Powered by phpBB® Forum Software © phpBB Group  Český překlad – phpBB.cz 

 

NAVRCHOLU.cz