Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

progettare LCD touch con STM32

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

0
voti

[91] Re: progettare LCD touch con STM32

Messaggioda Foto Utentexyz » 26 dic 2018, 19:32

Dipende dal compilatore, sugli ARM a 32 bit il "long" è uguale a "int". Basta fare una semplice verifica per essere sicuri, stampa via seriale o sul display il valore di "sizeof(long)".
Avatar utente
Foto Utentexyz
6.170 2 4 5
G.Master EY
G.Master EY
 
Messaggi: 1639
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[92] Re: progettare LCD touch con STM32

Messaggioda Foto Utentelelerelele » 27 dic 2018, 12:20

sizeof (long) mi restituisce 4, suppongo siano 4 bit.
comunque mi sono sbagliato, la matrice contiene dei double, sizeof(double) ritorna 8. Quindi dici che se carico il double in memoria tutto ok? mi da da pensare vedere che il double viene rappresentato con virgola!

ho pensato di scrivere su flash i valori letti dalla matrice di 5 punti letti durante la taratura, in questo modo evito di scrivere un long.

pare di essere riuscito a scrivere in flash una variabile uint32, da qua basta che carico la matrice di punti, poi eseguo i calcoli per la matrice di taratura così come se avessi appena fatta la taratura all'avvio.

Vedremo cosa succede.

Intanto grazie Foto Utentexyz.

saluti
Avatar utente
Foto Utentelelerelele
2.419 3 7 9
Expert EY
Expert EY
 
Messaggi: 2782
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[93] Re: progettare LCD touch con STM32

Messaggioda Foto Utentexyz » 27 dic 2018, 14:44

lelerelele ha scritto:sizeof (long) mi restituisce 4, suppongo siano 4 bit.

No :D "sizeof" restituisce un valore in byte quindi sono 4 \cdot 8 = 32\, \text{bit} ha la stessa grandezza degli int. Molti compilatori per CPU a 32 bit hanno il tipo "int" e "long" coincidenti.

la matrice contiene dei double, sizeof(double) ritorna 8.

I double non sono interi ma float point binari, nel caso specifico sono numeri a virgola mobile a doppia precisione a 64 bit (in notazione IEEE 754, dipende dal compilatore, è la notazione più usata).

Controlla il range dei numeri restituiti, mi pare esagerato usare un numero a 64 bit per rappresentare delle coordinate di un piccolo display LCD. Se il range dei valori validi è compreso in un intero a 32 bit converti il valore in un intero o al massimo se ti servono dei valori decimali usa dei numeri a virgola fissa. Se non vuoi fare nessuna conversione devi salvare il dato completo a 64 bit, sono 8 byte consecutivi o 2 interi consecutivi.

Ti consigli una buona lettura di qualche libro sul ANSI-C, un programmatore C di micro-controllori deve conoscere perfettamente il linguaggio C.
Avatar utente
Foto Utentexyz
6.170 2 4 5
G.Master EY
G.Master EY
 
Messaggi: 1639
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[94] Re: progettare LCD touch con STM32

Messaggioda Foto Utentepusillus » 29 dic 2018, 15:46

xyz ha scritto:
pusillus ha scritto:ho trovato una libreria GUI molto interessante:https://littlevgl.com/

Compilata sotto Linux via Makefile utilizzando la libSDL2. Il programma demo funziona...


Sei per caso riuscito a far funzionare con le SDL anche la tastiera e la simulazione di un encoder con la rotella del mouse?
Con windows riesco solo a far funzionare il mouse.
Immagine
https://github.com/ScarsFun
“Non è morto ciò che può vivere in eterno,
E in strani eoni anche la morte può morire.”
Avatar utente
Foto Utentepusillus
2.137 1 5 11
Expert EY
Expert EY
 
Messaggi: 757
Iscritto il: 5 mar 2016, 15:19
Località: Latina

0
voti

[95] Re: progettare LCD touch con STM32

Messaggioda Foto Utentepusillus » 29 dic 2018, 16:24

Foto Utentexyz
ho risolto... avevo dimenticato di assegnare gli oggetti ad un gruppo. funziona tutto!!!
...vedo se riesco a far funzionare la spinbox con la libreria 5.3dev :D
Immagine
https://github.com/ScarsFun
“Non è morto ciò che può vivere in eterno,
E in strani eoni anche la morte può morire.”
Avatar utente
Foto Utentepusillus
2.137 1 5 11
Expert EY
Expert EY
 
Messaggi: 757
Iscritto il: 5 mar 2016, 15:19
Località: Latina

0
voti

[96] Re: progettare LCD touch con STM32

Messaggioda Foto Utentelelerelele » 31 dic 2018, 12:18

lelerelele ha scritto:sizeof (long) mi restituisce 4, suppongo siano 4 bit.
xyz ha scritto:No :D "sizeof" restituisce un valore in byte quindi sono 4 \cdot 8 = 32\, \text{bit} ha la stessa grandezza degli int. Molti compilatori per CPU a 32 bit hanno il tipo "int" e "long" coincidenti.


Si, ovviamente avevo la testa che fumava, ho scitto bit pensando a 4 byte. :mrgreen:

xyz ha scritto:I double non sono interi ma float point binari, nel caso specifico sono numeri a virgola mobile a doppia precisione a 64 bit (in notazione IEEE 754, dipende dal compilatore, è la notazione più usata).

Ti consigli una buona lettura di qualche libro sul ANSI-C, un programmatore C di micro-controllori deve conoscere perfettamente il linguaggio C.
Hai ragione certamente questa è una lacuna da risolvere, è una vita che programmo in VB, quindi non ho di questi problemi.

Comunque per ora ho salvato in flash i dati letti dal touch, quando effettuo la taratura, sono interi, quindi non ho problemi a salvarli, all'apertura del firmware vado a leggerli ed ottengo la mappa nello stesso modo in cui la vado ad ottenere in fase di taratura,mi pare un buon compromesso.
Ecco il risultato...(dopo alcuni giorni di penitenza) :oops:


Poi ho iniziato a caricare una immagine sul display, e qua sono iniziati i dolori!
Credevo fosse relativamente semplice, visto che il software demo che ho caricato, (dopo un mese di notti insonni), possedeva gia le funzioni
Codice: Seleziona tutto
void LCD_DrawMonoPict(const uint32_t *Pict)
void LCD_WriteBMP(uint32_t BmpAddress)
,
però per qualche motivo che non conosco ancora non funzionavano, eh gia non è semplice come cedevo.
Poi ho notato che le altre funzioni che scrivono cerchi, ellissi, rettangoli,funzionano regolarmente, e queste vanno a lavorare direttemente sull'acceleratore hardware, così mi sono dedicato a
Codice: Seleziona tutto
DMA2D_InitStruct
,
ci ho messo un po di tempo, visto che inizialmente avevo sbagliato, (non conoscendo le procedure), a configurare la modalità colore uguale al display :cry: , ed anche la modalità della bitmap, l'ho ottenuta con "BmpCvtST", ma sbagliando il formato, poi alla fine ci sono riuscito, e al mia bella bitmap è uscita sul display.

Non so se qualcun abbia usate queste funzioni ST, mi interessa caricare immagini a due colori, per risparmiare spazio in flash, se qualcuno avesse un'idea della procedura corretta per usare queste funzioni direttamente sarebbe ottimo.

Ora posso partire con la gestione delle icone, e la lettura del touch.

Alle prossime.

P.S. Ieri a quest'ora pensavo che non sarei riuscito! Oggi sono molto contento dei risultati....


saluti a tutti.
Avatar utente
Foto Utentelelerelele
2.419 3 7 9
Expert EY
Expert EY
 
Messaggi: 2782
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[97] Re: progettare LCD touch con STM32

Messaggioda Foto Utentexyz » 31 dic 2018, 15:09

Ignoro quella API perché non la uso, comunque un formato utilizzato per le bitmap a 2 colori non compresse è XBM (nato nei primi sistemi X11):

https://en.wikipedia.org/wiki/X_BitMap

la bitmap prodotta è un sorgente in C facile da includere nel codice. Utilizzare bitmap compresse per risparmiare spazio è possibile ma bisogna vedere quali algoritmi di compressione è possibile utilizzare nel micro-controllore.
Avatar utente
Foto Utentexyz
6.170 2 4 5
G.Master EY
G.Master EY
 
Messaggi: 1639
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[98] Re: progettare LCD touch con STM32

Messaggioda Foto Utentelelerelele » 31 dic 2018, 15:34

xyz ha scritto:Ignoro quella API perché non la uso, comunque un formato utilizzato per le bitmap a 2 colori non compresse è XBM (nato nei primi sistemi X11).

Il mio sistema supporta questi formati.
Codice: Seleziona tutto
#define LTDC_Pixelformat_ARGB8888                 
#define LTDC_Pixelformat_RGB888                   
#define LTDC_Pixelformat_RGB565                   
#define LTDC_Pixelformat_ARGB1555               
#define LTDC_Pixelformat_ARGB4444               
#define LTDC_Pixelformat_L8                       
#define LTDC_Pixelformat_AL44                   
#define LTDC_Pixelformat_AL88
Devo verificare le caratteristiche diquesti.
Mi pare di avere capito che devo usare lo stesso formato di colore usato per il display, sbaglio?

Quindi è possibile che il display possa supportare più modalità colore, devo verificare su datasheets, però sarà possibile modificare questo parametro mentre sul display sono in esecuzione immagini? od è necessario impostare questo profilo prima di usarlo e poi non va più cambiato?

Intanto ringrazio per l'aiuto.

Saluti e buon anno.
Avatar utente
Foto Utentelelerelele
2.419 3 7 9
Expert EY
Expert EY
 
Messaggi: 2782
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[99] Re: progettare LCD touch con STM32

Messaggioda Foto Utentexyz » 31 dic 2018, 15:51

lelerelele ha scritto:Mi pare di avere capito che devo usare lo stesso formato di colore usato per il display, sbaglio?

Ripeto non conosco API, se fosse così sarebbe molto limitata. Le API fatte bene di solito hanno formati delle bitmap con una mappatura 1:1 col display e poi sotto insiemi del numero massimo di colori. Dai nomi dei tipi riportati possono supporre formati a 32 bit come ARGB8888 (Alpha + RGB ognuno a 8 bit) fino a 8 bit come AL44 (Alpha + Look-Up Table ognuno a 4 bit), non vedo formati con massimo 2 colori (BW).
Avatar utente
Foto Utentexyz
6.170 2 4 5
G.Master EY
G.Master EY
 
Messaggi: 1639
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[100] Re: progettare LCD touch con STM32

Messaggioda Foto Utentepusillus » 1 gen 2019, 22:08

Qui c'è un tutorial a basso livello. Immagino che la funzione di cui parli vada ad usare gli stessi comandi:
http://www.lucadavidian.com/2017/10/02/ ... ontroller/
Immagine
https://github.com/ScarsFun
“Non è morto ciò che può vivere in eterno,
E in strani eoni anche la morte può morire.”
Avatar utente
Foto Utentepusillus
2.137 1 5 11
Expert EY
Expert EY
 
Messaggi: 757
Iscritto il: 5 mar 2016, 15:19
Località: Latina

PrecedenteProssimo

Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti