Order of precedence for pin function
Abbiamo visto che ogni pin
ha disponibili tre diverse funzioni. Se abbiamo qualche idea di come utilizzare quella
di I/O digitale, resta da chiarire come utilizzare le altre.
E in questo si celano alcune delle
difficoltà di base per l' utente che affronta per la prima volta questi
processori.
E queste difficoltà, delle piccole trappole poste sul percorso del
principiante, derivano tutte dalla linea guida citata prima, ovvero dalla
volontà del costruttore di assegnare ai default le condizioni di minimo
consumo energetico.
Il foglio dati da
una indicazione essenziale:
Il pin 5 è utilizzato sia come GPIO che come ingresso del Timer0.
La
scelta viene effettuata programmando il bit del registro OPTION:
-
Se il bit è a livello 1, che è il default, il pin 5 agisce come
ingresso del timer.
- Solo portando questo bit a livello 0 sarà possibile utilizzare il pin
5 come GP2
|
Questa è una "trappola" in cui cade il principiante o chi si
accinge ad usare per la prima volta questo chip. Se la funzione di ingresso al
timer,
che è prioritaria per i default, non viene disattivata, non è possibile accedere a
quelle digitali e il LED collegato al pin resterà ostinatamente spento !
Per quanto riguarda gli altri pin, la selezione della funzione applicata
avviene con la configurazione (che sarà descritta più avanti) ed è al di
fuori della gestione attraverso il programma vero e proprio.
- sul pin 4 l' alternativa a GP
3
è la funzione di reset MCLR, che viene selezionata nella configurazione
sul pin 3 l' alternativa a GP4
è la funzione dell' oscillatore esterno, che viene selezionata nella configurazione
sul pin 2 l' alternativa a GP5
è la funzione dell' oscillatore esterno, che viene selezionata nella configurazione
Quindi:
In sintesi, per usare i pin come semplici GPIO occorre:
Pin |
Azione |
Dove |
SFR |
Bit |
GP0 |
disponibile |
- |
- |
- |
GP1 |
disponibile |
GP2 |
disabilitare T0CKI |
da
programma |
OPTION |
T0CS
= 0 |
GP3 |
disabilitare
MCLR |
da
CONFIG |
config_word |
_MCLRE_OFF |
GP4 |
impostare l' oscillatore interno |
_OSC_IntRC |
GP5 |
impostare l' oscillatore interno |
|
Abbiamo scelto come chip iniziale proprio questo in quanto la doppia
funzione su è praticamente l' unica "trappola" sul percorso
del programmatore e quindi si presta bene per iniziare ad apprendere l'
esistenza di questi meccanismi tipici dei PIC, che in altri modelli saranno
più complessi con l' aumentare delle periferiche integrate.
Vediamo come controllare le altre funzioni disponibili.
|