Tips & Tricks - PIC

 

 


3.- Definizione degli I/O

Abbiamo stabilito quale microcontroller intendiamo impiegare, ora può essere utile fornire qualche informazione su come è collegato il processore, l' uso degli I/O, ecc. Tutte queste informazioni servono non solo a chi legge, ma anche a se stessi per avere le idee chiare sulle risorse disponibili e su come usarle.

Una cosa che quasi sempre manca in un sorgente è: come sono collegati i pin. Non si tratta di una informazione trascurabile, in quanto può evitare di avere l' obbligo di accompagnare il tutto con uno schema elettrico o comunque rende chiaro perchè un pin sia programmato come uscita oppure come ingresso. 

Vediamo un esempio in forma "grafica" (per quanto possibile in editor di testo).
Siccome i pin solitamente hanno più funzioni assegnabile, sono riportate le alternative, il che evita la necessità di consultare il foglio dati.

;****************************************************************************
; MAPPA I/O
;
; Pinout : PIC16F1826/7 @ 18 pin PDIP / SOIC
; ----------
;
;           |¯¯\/¯¯|
;      RA2 -|1   18|- RA1
;      RA3 -|2   17|- RA0
;      RA4 -|3   16|- RA7
; MCLR/RA5 -|4   15|- RA6
;      Vss -|5   14|- Vdd
;      RB0 -|6   13|- RB7/PGD
;  PGM/RB1 -|7   12|- RB6/PGC
;      RB2 -|8   11|- RB5
;      RB3 -|9   10|- RB4
;           |______|
;
; Impiego pin :
; ----------------
; PIC16F1826-27                       18 pin  Impiego
;
; Vdd                                     14: Vdd
; Vss                                      5: Vss
;
; RA0/AN0/CPS0/C12IN0-/SDO                17: AN0 - livello
; RA1/AN1/CPS1/C12IN1-/SS                 18: AN1 - temperatura
; RA2/AN2/CPS2/C12IN2-/C12IN+/Vref-/DACOUT 1: in  - pulsante on
; RA3/AN3/CPS3/C12IN3/C1IN+/C1OUT/SRQ/CCP3 2: in  - pulsante off
; RA4/AN4/CPS4/C2OUT/SRNQ/T0CKI/CCP4       3:  -
; RA5/MCLR/Vpp/SS1                         4: MCLR
; RA6/P1D/P2B/SDO1/OSC2/CLKOUT/CLKR       15:  -
; RA7/P1C/P2A7CCP2/OSC1/CLKIN             16:  -
;
; RB0/SRI/T1G/CCP1/P1A/FLT0/INT            6: out - LED rosso
; RB1/AN11/CPS11/RX/DT/SDA/SDI1            7: out - LED verde
; RB2/AN10/CPS10/RX../SDA2/SDI2/SDO1/MDMIN 8: out - LED giallo
; RB3/AN9/CPS9/CCP1/P1A/MDOUT              9: out - buzzer
; RB4/AN8/CPS8/SCL1/SCK1/SDO1/MDCIN2      10:
; RB5/AN7/CPS7/P1B/TX/SCL2/SCK2/SS1       11:
; RB6/AN5/CPS5/T1OSO/T1CKI/P1C/P2A/CCP2   12:
; RB7/AN6/CPS6/T1OSO/P1D/P2B/NDCIN2       13:
;

Anche qui si tratta di un' area di solo testo di commento, indifferente per la compilazione, ma la cui presenza rende quasi superfluo uno schema elettrico. Anche qui, forma e struttura sono ampiamente modificabili.
La sua utilità sta nella possibilità di rendersi conto con una sola occhiata delle risorse disponibili, della loro collocazione e del loro impiego nel progetto.

Questa sezione può essere validamente completata da una mappatura degli I/O con relative label, che serviranno rendere più pratico il sorgente. Anche qui possiamo ricorre ad una forma semi-grafica che è ben esplicativa:

;====================================================================
; DEFINIZIONE DI IMPIEGO DEI PORT
;====================================================================
;
;PORTA map
;| 7   |  6  |  5  |  4  |  3  |  2  |  1  |  0  |
;|-----|-----|-----|-----|-----|-----|-----|-----|
;|     |     |     |     |     |     |     |     |
;
;#define PORTA,0 ;
;#define PORTA,1 ; 
;#define PORTA,2 ; 
;#define PORTA,3 ;
;#define PORTA,4 ;
;#define PORTA,5 ;
;#define PORTA,6 ;
;#define PORTA,7 ;

;PORTB map
;| 7   |  6  |  5  |  4  |  3  |  2  |  1  |  0  |
;|-----|-----|-----|-----|-----|-----|-----|-----|
;|     |     |     |     |     |     |     |     |
;
;#define PORTB,0 ;
;#define PORTB,1 ; 
;#define PORTB,2 ; 
;#define PORTB,3 ; 
;#define PORTB,4 ;
;#define PORTB,5 ;
;#define PORTB,6 ;
;#define PORTB,7 ;

;********************************************************************
;####################################################################

Qui si inizia a valutare l' utilità della colorazione del testo operata dagli editor adeguati: il template è, inizialmente, un foglio millimetrato vuoto, da adattare alla propria esigenza.

Qui, ad esempio, de-commentando le righe che si intendono usare ed aggiungendo quanto necessario, il testo base si trasformerà da un puro commento ad un un elemento della compilazione.

;====================================================================
; DEFINIZIONE DI IMPIEGO DEI PORT
;====================================================================
;
;PORTA map
;| 7   |  6  |  5  |  4  |  3  |  2  |  1  |  0  |
;|-----|-----|-----|-----|-----|-----|-----|-----|
;|     |     |     |     |stop |avvio|temp |level|
;
 
#define level PORTA,0 ; ingresso analogico 0
 
#define temp  PORTA,1 ; ingresso analogico 1
 
#define PBON  PORTA,2 ; pulsante avvio
 
#define PBOFF PORTA,3 ; pulsante stop
;#define PORTA,4 ;
;#define PORTA,5 ;
;#define PORTA,6 ;
;#define PORTA,7 ;

;PORTB map


Ovviamente le parti inutilizzate potranno essere eliminate; in ogni caso, la presenza di linee ancora commentate rende visibile la disponibilità potenziale di altre possibilità.


 

Copyright © afg . Tutti i diritti riservati.
Aggiornato il 16/05/12 .