Sei sulla pagina 1di 12

Search Programmazione WxWidgets CodeBlocks Android Elettronica Arduino 1-Wire

AA

Feb

01
2014

IteadStudio 2.8 TFT Display shield: Una nuova libreria


Arduino, Elettronica Add comments

69.164.218.62 Utente non autenticato Registrati Collegati

Come vi preannunciavo nel precedente articolo ormai pronta la prima versione della mia nuova libreria dedicata alla shield
open in browser PRO version
Are you a developer? Try out the HTML to PDF API

Italiano English

pdfcrowd.com

IteadStudio 2.8 TFT Display. Anzich scrivere il codice totalmente da zero, ho preso il vecchio codice della libreria ITDB02 V1.3 da cui ho cominciato un lungo e pesante percorso di revisione. Ho scelto quella libreria in quanto era scritta in maniera elementare e mi permetteva di modificare in modo veloce il codice, partendo da una base gi funzionante senza riscrivere tutto, specie la noiosa parte di inizializzazione. Per testare le performance della libreria ho preso una delle sketch desempio, lho resa un po pi complessa ed ho aggiunto la sezione di cronometraggio. La libreria da cui sono partito, su Arduino UNO, impiegava 11149.1ms e pesava 8732 bytes. Dopo semplici interventi di ottimizzazione e semplificazione del software il tempo passato a 10473.3ms ed il peso della sketch a 5354 bytes. Non vi scrivo questi dati solo per la mania dei bechmark, ma per sottolineare come molto spesso le librerie che troviamo in rete siano tuttaltro che ottimizzate, infatti con poche ore di lavoro abbiamo incrementato la velocit del 7%, ma decisamente pi vistosa la diminuzione di occupazione della memoria flash di ben il 38% senza contare che la versione originale
open in browser PRO version
Are you a developer? Try out the HTML to PDF API

RSS McMajan Libreria Ss_TFT Arduino, rel e infrarossi. IteadStudio 2.8 TFT Display shield: Una nuova libreria Arduino e RS485: piccoli approfondimenti Arduino cos? (per principianti e anche meno)

Categories Elettronica (36) 1-Wire (8) Arduino (30) Programmazione (26) Android (7) CodeBlocks (9) wxWidgets (11) Senza categoria (1)

pdfcrowd.com

non funziona con Arduino Mega mentra la mia si. A seguito trovate numerose altre tabelle di valori, questo articolo vuole infatti mettere in luce quali possano essere i margini di miglioramente scrivendo il proprio codice in un modo o nellaltro, se non siete interessati potete tranquillamente saltare tutta questa parte. Velcoit ms ITDB02 V1.3 Ss_ITDB02 V1.0 11149.1 10331.8 Grandezza sketch 8732 5354

Senza categoria (1) WEB (1) Wordpress (1)

Elettronica Sito ufficiale Arduino

Programmazione HomePage Code::Blocks HomePage wxWidgets

Il passo successivo stato sostituire le classiche funzioni digitalWrite con la versione modificata della mia libreria FastArduino che gi conoscete in quanto integrata con la libreria hc595 che trovate in questo blog. Lutilizzo della FastdigitalWrite comporta un ulteriore notevole miglioramento della velocit con mantenimento totale della compatibilit sia con Arduino Uno che Mega. Il test viene completato in 7863.2ms mantenendo una dimensione di 5216bytes. Liniziale incremento del 7% ora sale a quasi il 30% ed una riduzione in spazio flash di oltre il 40%. La prima semplice conclusione che se avete una sketch che usa intensivamente le porte di Arduino in uscita vi conviene
open in browser PRO version
Are you a developer? Try out the HTML to PDF API

Blog QR Code

pdfcrowd.com

sostiture la versione originale digitalWrite con la mia FastdigitalWrite per ottenere subito guadagni che nelle applicazioni pi intensive possono superare il 75%, senza compromettere la compatibilit con le diverse board. Arduino UNO ITDB02 V1.3 Ss_ITDB02 V1.0 Ss_ITDB02 V1.0 FA Velcoit ms 11149.1 10331.8 7863.2 Grandezza sketch 8732 5354 5216

Per andare oltre ci si pu che affidare alla programmazione diretta delle porte, cosa che ho fatto ma che ovviamente stata aggiunta anche nelle ultime versioni della libreria ufficiale, la UTFT. E qui le divergenze diventano interessanti e sono il motivo per cui vi ho annoiato con tutti questi numeri. La programmazione diretta delle porte complica notevolmente il codice e determina grossi problemi nel rendere il codice compatibile con le varie schede. La domanda a questo punto : che velocit raggiunge la UTFT? Ve lo dico io: 903.7ms ma con una sketch di ben 19682bytes. Ci troviamo di fronte ad un netto miglioramento di velocit ma con un pesantissimo impiego
open in browser PRO version
Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

di risorse. E la mia libreria? Vi sorprender, raggiunge i 531.9ms in soli 4944bytes, quindi prestazioni ancora migliori con ulteriore risparmio di risorse. Ovviamente la UTFT contiente moltissime funzioni non ancora presenti nella mia libreria, ma nel momento in cui non vengono usate NON devono occupare spazio nella sketch finale. Nel futuro sviluppo della mia libreria posso attendermi una lieve flessione prestazionale ma in linea di massima non ci saranno grosse modificazioni. Arduino UNO Velcoit Grandezza ms sketch 8732 5326

Speed% Sketch% base -7.3% base -38.7%

ITDB02 V1.3 11149.1 Ss_ITDB02 V1.0 Ss_ITDB02 V1.0 FA UTFT Ss_ITDB02 V1.0 FADP
open in browser PRO version

10473.3

7863.2 903.7 531.9

5216 19682 4944

-29.5%

-40.3%

-91.9% +125.4% -95.2% -43.4%


pdfcrowd.com

Are you a developer? Try out the HTML to PDF API

Ma non finisce qui. Come dicevamo la mia libreria funziona anche su Mega e su shift register, per cui abbiamo altre tre tabelline piene di dati da studiare. Anche se la versione originale della libreria ITDB non funziona con la Mega ne tantomeno su HC595, ne ho mantenuto i dati come riferimento iniziale: Arduino Mega BASE Ss_ITDB02 V1.0 Ss_ITDB02 V1.0 FA UTFT Ss_ITDB02 V1.0 FADP Velcoit Grandezza ms sketch 11149.1 13735.3 8732 5602

Speed% Sketch% base +23.2% base -35.8%

7870.5 1179.9 1198.3

5330 20224 5302

-29.4%

-39.0%

-89.4% +131.6% -89.3% -43.4%

Guardando questi dati una cosa riuslta chiara. Indipendenemente dalla libreria e dal tipo di ottimizzazzioni, la versione per Arduino Mega sempre pi lenta ed
open in browser PRO version
Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

impiega maggiori risorse. Velcoit Grandezza ms 11149.1 30163.8 sketch 8732

HC595 BASE Ss_ITDB02 V1.0 Ss_ITDB02 V1.0 FA UTFT Ss_ITDB02 V1.0 FADP performanti:

Speed% Sketch% base base -27.1%

6364 +170.5%

7127.3 XX 2590.0

6260 XX 6052

-36.1% XX -76.8%

-28.3% XX -30.7%

Come ultima tabella vi metto a confronto le versioni pi

Comparativa Ss_ITDB02 Mega UTFT Mega


open in browser PRO version

Velcoit ms 1198.3 1179.9

Grandezza sketch 5302 20224


pdfcrowd.com

Are you a developer? Try out the HTML to PDF API

Ss_ITDB02 UNO UTFT UNO Ss_ITDB02 V1.0 HC595

531.9 903.7 2590.0

4944 19682 6052

Ci sono diverse considerazioni che possiamo fare su questi dati. La prima che la UTFT spreca enormi quantit di risorse e questo un lato sicuramente negativo anche perch risulta chiaro che loccupazione di memoria riducibile del 75% per fare le stesse cose. Non ho ancora indagato il motivo di tale spreco, possibile che si tratti dei font aggiuntivi, ma nel momento in cui non vengono utilizzati dalla sketch non ha senso che vengano compilati. Per fortuna non ho notato sprechi sul versante RAM, infatti le differenze con la mia libreria sono irrisorie (una decina di bytes). Laltra cosa che possiamo notare che la libreria UTFT non ottimizzata al massimo su Arduino UNO, cosa seccante visto che la shield in prima istanza fatta proprio per quella board. La versione Mega solo dello 0.1% pi veloce della mia libreria (almeno per ora ) ma ha unoccupazione di memoria flash quasi 4 volte superiore Vi siete chiesti perch la mia libreria oltre due volte pi veloce sulla UNO che sulla Mega? Ve lo dico io. Nella UNO
open in browser PRO version
Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

gli 8 pin corrispondenti agli ingressi dati del display sono tutti sulla stessa porta per cui con ununica assegnazione li posso settare tutti in contemporanea, cosa impossibile da farsi sulla Mega dove sono mescolate tre porte diverse.

Questo ci spiega perch hardware di sviluppo come Arduino e le relative shield possano essere decisamente meno efficienti di schede create ad OK per specifici compiti, anche a parit di processore, quarzo, etc. Vorrei anche sottolineare che la versione HC595 (foto qui sopra) tutto sommato ha una velocit che solo la met di quella della versione Mega, per cui possiamo affermare che rinunciando al 50% delle performances possiamo risparmiare 5 pin digitali, anche se purtroppo occorrer
open in browser PRO version
Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

dellhardware di supporto per addattare la shield. Qui a lato vedete allopera il mio solito prototipo che al momento della foto ha montata la shield con il display, due 74hc595 in serie di cui il primo collegato al display, un 74hc165 con 8 ingressi digitali ed un trasmettitore infrarossi. Direi che un bel passo avanti rispetto a quanto ci obbliga la shield ed il software originale anche se non ho ancora cominciato a testare touch ed SD. zxdxddfghdf Be Sociable, Share!

Tw eet

Like

Share

Articoli correlati: 1. IteadStudio 2.8 TFT Display shield sia su Arduino UNO che su Mega 2560 2. Arduino e 74HC595: libreria per display HD44780 compatibili e uscite digitali. 3. Arduino, sensore 1wire DS18B20 e shield Ethernet. 4. Arduino, display HD44780 compatibile e 74HC595 5. Display HD44780 e caratteri personalizzati.
open in browser PRO version
Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Related posts brought to you by Yet Another Related Posts Plugin.

Stefano

Stefano Smania, medico radiologo Programma in C dalla fine degli anni 80. Ha conoscenze discrete di C++, php, javascript, html, sql. Possiede approfondite conoscienze sullo standard DICOM. Bazzica con l'elettronica e unisce le diverse passioni in un progetto di domotica. Ha realizzato da solo un piano della propria casa, dal rivestimento termico, ai muri interni, l'impianto elettrico e domotico, idraulico, riscaldamento a pavimento, infissi e quant'altro vi venga in mente. Gli piace cucinare ma ha poco tempo per applicarvisi. Scrive questi articoli nella speranza che servano a qualcuno
Posted by Stefano at 00:02 Tagged w ith: arduino, hc595, IteadStudio, libreria, TFT

Leave a Reply
You must be logged in to post a comment.

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Arduino e porta RS485: piccoli approfondimenti

(Italiano) Arduino, rel e infrarossi.

2011 McMajan

Suffusion theme by Sayontan Sinha

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Potrebbero piacerti anche