SDFat e BMP

Salve, sto mettendo assieme un cronotermostato con un arduino mega uno shield ethernet ed uno schermo 2,8" touchscreen.
Il mio problema è che dal lato server sono costretto ad usare le librerie SDFat per accedere al disco mentre lo schermo utilizza le Petit fat e non c'è assolutamente modo di farle convivere...
Ho uno schemo 2.8" della nuelectronics "modificato"

http://www.nuelectronics.com/estore/index.php?main_page=product_info&products_id=31

ho dovuto infatti disabilitare il suo lettore sd e cambiare i cablaggi del touchscreen, in questo modo riesco ad usare il touch dello schermo ed il lettore dello shield ethernet.
Ho cercato ovunque su internet ma non ho trovato il modo di far caricare un bmp tramite librerie SDFat allo schermo suddetto...

C'è qualcuno che mi può dare una mano.

Grazie!!

credo che lo schermo non gestisca direttamente le immagini, arduino la deve aprire, leggere, e dire allo schermo dove e cosa disegnare.

Si, lo schermo non gestisce direttamente le immagini, infatti nella libreria del pannello ci sono due funzioni per caricare i bmp (e devo dire che funzionano egregiamente...).
Speravo che ci fosse qualche funzione già pronta anche per la libreria SDFat....

in teoria puoi provare a leggere l'immagine in binario e inviarla al monitor, ma dubito fortemente che funzioni. Magari esiste un comando apposito che avvisa il monito che li stai inviando un'immagine

Beh, dato che non ho trovato la "pappa pronta" sto modificando la libreria originale per far leggere i bmp anche con SDFat...

Per ora legge bene l'header e mi riconosce il bmp; altezza; lunghezza; compressione ecc. ecc.

Ho ancora alcuni problemi dato che l'immagine che mi carica è un po' stortina (devo aver sbagliato qualche passaggio...)

è storta l'immagine in memoria o sei già riuscito a farla visualizzare?

Adesso carica l'immagine correttamente, solo che appena arriva alla fine continua a caricarla e mi appaiono delle righe...

... ci sono vicino...

forse ora devi solo dirgli di fermare il disegno(verbo) dell immagine

Trovato...
in pratica la vecchia libreria nella lettura del file memorizzava una variabile di lunghezza file che era al massimo quella del buffer. Per scrivere il BMP legge il buffer e lo invia allo schermo. Quando la variabile era minore del buffer inviava solo il valore della variabile allo schermo ed usciva dal loop.
La SDFat non ha questa funzione nel file.read, quindi dovrò inventarmela di sana pianta....

Fatto.... con un misto di For, While, do, ecc. ecc. sono riuscito nell'impresa.
Adesso ho una funzione della libreria SDFat che carica i bitmap su uno schermo tft !!!

Saluti a tutti!

Ho migliorato il codice, ho spulciato la libreria e mi sono accorto che per il conteggio dei byte bastava fare: br = file.read(buffer, buffer_size)!!!

ciao sono nuovo di arduino ed a digiuno di programmazione, però ho riscontrato il prblema che tu qui dici di aver risolto, vorrei caricare una bmp direttamente dal sd utilizzando SDFat, al momento riesco a visualizzare l'immagine caricata come .c direttamente su arduino anche se viene stampata in obliquo, qualcuno può aiutarmi?

Hai riesumato un treadh di 3 anni fa e di cose ne sono cambiate da allora, ti consiglio di eliminare questo post e fare un treadh nuovo con un collegamento link a quello vecchio se ti serve qualche riferimento

ciao

lol... ehm... ok