ESERCITAZIONE # 12b
Progetto di test.
Il package del driver comprende un progetto in MPLAB 8 o superiori che
effettua un test su un modulo generico da 2 linee per 16 caratteri.
Il progetto dà un modello di template semplificato ed un esempio di uso dei
vari elementi del driver.
I path indicati nel sorgente sono quelli dei files nella memoria del PC su
cui è stato sviluppato; dovranno essere variati in modo da adeguarsi a come l'
utente ha inteso organizzare le sue librerie.
Il sorgente contiene una elevata quantità di nop
che hanno la sola funzione di servire come punti di posizionamento
dei breakpoint, utili per una analisi a passi del programma.
Il progetto usa il set di macro per la gestione del clock interno 18FIntClock.asm.
Una copia è inserita nel package per comodità dell' utente.
Per quanto riguarda le temporizzazioni, si è fatto uso della procedura DelayUS
di Mike Mclaren che consente di avere tempi precisi e indipendenti dal clock del
microcontroller (minimo 5,4 ms con clock di 48MHz).
Si tratta di una macro-sub, separata dal package del driver; va inclusa in testa al programma, ma
in area eseguibile.
Ovviamente, se si utilizza una frequenza di clock specifica per il
microcontroller, o altre strutture per le temporizzazioni, nulla vieta di modificare il driver con routines di
ritardo dedicate.
Queste temporizzazioni sono del genere waste
time, dato che non si prevede una gestione in interrupt per il modulo LCD;
nulla, comunque, vieta di utilizzare uno dei timer del microcontroller, se
richiesto.
DelayUS,
che è dettagliato in rete a:
http://www.piclist.com/techref/microchip/delay/xus-mm.htm
I collegamenti hardware tra la UniBoard e il modulo LCD
sono quelli già visti nell' esercizio precedente.
La struttura proposta è del genere "assoluto".
Potrà essere scritta in modo rilocabile con l' impiego degli statements CODE,
EXTERNAL, GLOBAL,
ecc. per ottenere elementi trattabili dal Linker dell' Macro Assembler.
Questo passaggio sarà descritto più avanti.
Qui è scaricabile il package del driver.
|