ESERCITAZIONE # 12b
Note.
- Tutte
le routines che modificano linee dati o di controllo, all'uscita le
riposizionano a livello basso. Questo consente di conoscere sempre lo stato
di queste linee e facilita sequenze di azioni verso il display o l'uso delle
stesse linee per altre funzioni, ad esempio un multiplex con tasti.
- Se
si intendono usare le linee di I/O dedicate al controllo del modulo LCD per altre funzioni
occorre considerare che sono indispensabili le seguenti condizioni:
- la linea E deve essere utilizzata esclusivamente per l' enable del modulo:
qualsiasi uso delle altre linee
può avvenire solo ed esclusivamente quando il modulo è disabilitato (E=0)
- le linee dati non devono essere caricate con resistenze minori di 10k se
si intende leggere dati, in quanto è possibile che i moduli LCD abbiano un
fan out limitato
- ovviamente, nessuna linea deve essere bloccata ad un livello logico che ne
impedisca il comando da parte del port dedicato
- Le
temporizzazioni sono basate sulla procedura DelayUS, che consente di
ritardare in modo indipendente dal clock (minimo circa 5 msec a 48MHz). Se
il clock del processore è definito, si potranno utilizzare ritardi fissi
adeguati, con risparmio di risorse.
- Le
funzioni speciali sono escludibili dalla compilazione portando a 1 il
parametro LCDSHORTDRIVE nei default
- Lo
spreco di spazio di macro come LCDOutsrt e
LCDstring è voluto per
l'immediatezza d' uso. Nel caso di impiego pesante è consigliabile
trasformarle in subroutines.
- Le
routine che agiscono su tabelle, necessitano della definizione PROGMEMSIZE
che impone o meno l' impiego di TABLPTRU.
Per default il valore è d'32' , ovvero memoria programma <= 32K. Se le
tabelle sono poste al di sopra di questo limite, indicare un qualsiasi
diverso valore per PROGMEMSIZE.
|
|
Copyright © afg. Tutti i diritti riservati.
Aggiornato il 17/12/12.
|