Stránka 1 z 2

Nastavení pinů pro ILI9341

Napsal: 29 říj 2023, 15:15
od hafca
V programu je soubor Settings.h, kde ja nastavení pinů pro displej
#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS 15 // Chip select control pin
#define TFT_DC 2 // Data Command control pin
#define TFT_RST 4 // Reset pin (could connect to RST pin)
Zapojení na piny ESP32 Dev a displej je správně, ale displej jenom svítí.
Když se podívám do knihovny TFT_eSPI kde je soubor User_Setup.h, je v něm jiné zapojení pinů.
#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS 5 // Chip select control pin
#define TFT_DC 4 // Data Command control pin
#define TFT_RST 22 // Reset pin (could connect to RST pin)
//#define TFT_RST -1 // Set TFT_RST to -1 if display RESET is connected to ESP32 board RST
Jak to vlastně má být? Obě definice stejně, nebo je to jedno? A když to jedno není, jak má být správné zapojení displeje?
Trápím to už třetí den, zkusil jsem všechny kombinace, ale bez výsledku. Mohl by mě někdo popostrčit?

Re: Nastavení pinů pro ILI9341

Napsal: 29 říj 2023, 15:41
od SkullKeep
spíš se mrkni, který soubor s příponou *.h používá jestli setting.h nebo user_setup.h. abys věděl na ktere piny se hlásí .

Re: Nastavení pinů pro ILI9341

Napsal: 29 říj 2023, 15:51
od hafca
Můžeš mi to trochu objasnit? Hledal jsem ve všech souborech co k tomu patří, ale nenašel.

Re: Nastavení pinů pro ILI9341

Napsal: 29 říj 2023, 18:03
od SkullKeep
Většinou to bývá v záhlavý souboru pro danou knihovnu.

Re: Nastavení pinů pro ILI9341

Napsal: 29 říj 2023, 20:21
od peterple
Prejdi si súbory tvojho projektu. Začni tým ktorý kompiluješ. Hľadaj

Kód: Vybrat vše

#include <xxx.h>
alebo
#include "xxx.h"
kde xxx sú tie tvoje mená konfiguračných súborov.

Podľa toho poznáš ktorý hlavičkový súbor sa v tvojom projekte používa.
Odpovede na otázky.
Definície nemusia byť rovnaké. A nie je to jedno. Sú to textové makrá ktoré sa v celom programe nahradia za tie číselká. Tým sa dosiahne že si môžeš nastaviť ako to máš pripojené.
Pozor dokonca sa to môže aj predefinovať ak to máš napísané v chybnom poradí.

Otázka je ako to skúšaš? Meníš pripojenie displeja, alebo len prepisuješ tie súbory. Ak len prepisuješ súbory celkom dobre sa môže stať že prepisuješ tie ktoré sa vôbec nepoužívajú.

V takom prípade sa hľadá čo naozaj platí. Napríklad tak že si tie hodnoty vypíšem na seriovú linku.

Re: Nastavení pinů pro ILI9341

Napsal: 29 říj 2023, 20:29
od hafca
V souboru, který kompiluji je
#include "settings.h"
Jestli to dobře chápu, tak bych měl propojit piny, tak jak je v něm napsáno? Bez ohledu na to, co je v TFT_eSPI?

Re: Nastavení pinů pro ILI9341

Napsal: 29 říj 2023, 21:02
od SkullKeep
Bylo by lepší zjistit jaký typ *.h souboru tam je a podle toho pak zapojit PINY.

Re: Nastavení pinů pro ILI9341

Napsal: 29 říj 2023, 21:08
od hafca
Sketch má u sebe mimo jiné i soubor settings.h. Takže předpokládám, že se budu řídit jeho obsahem.

Re: Nastavení pinů pro ILI9341

Napsal: 29 říj 2023, 23:04
od peterple
To nie je také jednoduché povedať.
Ak máš v hlavnom súbore projektu

Kód: Vybrat vše

#include "settings.h"
Tak vieme na betón že tento súbor sa na tomto mieste vloží do tohoto súboru pri preklade. A to je tak všetko. Či je to ale na vhodnom mieste alebo či sa za tým nevloží niečo iného nevieme.

Ak totiž máš najprv vložené hlavičky pre tú knižnicu tak tá knižnica nenájde tvoje definície môže použiť svoje a tie čo tam dáš potom sa už neuplania.

Skrátka a dobre. Treba rozumieť tomu čo include robí ako a prečo. A napríklad aj tomu že to include môže byť niekoľkokrát vnorené. Potom treba vedieť pre koho sa tie mená definujú a kedy sa ten niekto kompiluje do projektu.

Aj keď tvrdíš že si skúšal všetky možnosti a nefungovalo to ani s jednou. Lenže urobiť tam chybu je veľmi ľahké, stači jeden blbo popísaný signál a už to nemôže fungovať.

Pri takýchto problémoch s radosťou používam logický analyzátor a z toho ako vyzerá komunikácia si viem odvodiť či je signál správny alebo nie (aj keď nie všetky sa tak dajú zbadať na prvý pohľad). Lenže to je už asi iný level debuggingu.

Tak to skúsme čo najjednoduchšie - bez include

skús to takto ako je to v tomto príklade
https://techtutorialsx.com/2021/01/31/e ... llo-world/

Kód: Vybrat vše

#include <Arduino_GFX_Library.h>
 
#define TFT_SCK    18
#define TFT_MOSI   23
#define TFT_MISO   19
#define TFT_CS     22
#define TFT_DC     21
#define TFT_RESET  17
 
void setup(void)
{
 
 //teraz tuto na beton vieme ake je kde číslo
  Arduino_ESP32SPI bus = Arduino_ESP32SPI(TFT_DC, TFT_CS, TFT_SCK, TFT_MOSI, TFT_MISO);	//a tuto ich použijeme
  Arduino_ILI9341 display = Arduino_ILI9341(&bus, TFT_RESET);
 
  display.begin();
  display.fillScreen(WHITE);
  display.setCursor(20, 20);
  display.setTextSize(2);
  display.setTextColor(BLUE);
  display.print("Hello world");
}
 
void loop() {}

Re: Nastavení pinů pro ILI9341

Napsal: 30 říj 2023, 10:16
od hafca
Zkusil jsem to demo. Nechal jsem ale zadrátovaný displej, tak jak jsem ho měl. V demu jsem přepsal piny aby odpovídaly zapojení a fungovalo to.
Autor má obrázek, kde je namalované zapojení displeje. Piny odpovídají tomu co je v knihovně TFT_eSPI v souboru User_Setup.h.
Ještě mi napadá jedna věc. Demo nešlo zkompilovat, protože používám verzi desek ESP32 1.0.6. S novější verzí 2.0.11 šlo zkompilovat demo, ale zase nejde zkompilovat ten program. Ale když to projde kompilací, tak by to snad mělo být jedno.

Omluvte moje možná divné úvahy nebo dotazy. Jak říkají vnuci, mám už několikrát přetočený tachometr a ještě k tomu jsem začátečník.