Lezione n°11 - mrscuole.net

Transcript

Lezione n°11 - mrscuole.net
Corso introduttivo sui
microcontrollori
A. S. 2007 – 2008
Programmare i PIC in linguaggio C
Il CCS PCWH Pic-C Compiler
Il nostro primo esercizio: Blinking Led
Nicola Amoroso
[email protected]
NA – L11
http://www.mrscuole.net/anxapic/
1
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
Programmare i PIC in linguaggio C
Il CCS PCWH Pic-C Compiler – La demo-Board AnxaPic4
La scheda ha a bordo:
2 3
1
4
30
36
23 24 25 26 27
20
28
19 21 22 32 33
37 10
18
17
16
5
7
8
6
29
31
11
9
34
35
13 12
15 14
1. Display LCD 4 righe x 20 caratteri
2. Connettore per alimentazione 9 V
3. Interruttore ON/OFF
4. Led Power ON
5. Connettore ICD2 Debugger
6. Connettore PicKit2 Programmer
7. Zoccolo RTC PCF8583
8. Zoccolo RTC DS1307
9. Batteria tampone RTC
10. Buzzer piezoelettrico
11. Jumper Pull-Up resistor
12. Connettore TTL RS232
13. Connettore per KeyBoard 4x4
14. 1-wire connector
15. I2C connector
16. Bus connector 40 pin
17. Expansion connector
18. Zoccolo 40 pin
19. RB0 Interrupt Switch
20. Reset Switch
21. Led on board
22. Jumper (Led – ADC RA0) ON
23. Trimmer RA0 ADC
24. Trimmer Contrasto LCD Text
25. Trimmer Contrasto LCD Graphic
26. Trimmer retroilluminazione LCD
27. Retroilluminazione LCD Switch
28. Jumper I2C Pull-Up resistor ON
29. Jumper Buzzer Pin select
30. Jumper txt display mode R/W select
31. Connector DS1307 signal/clock
32. Oscillatore al quarzo
33. Jumper select OSC1-OSC2 I/O
34. 1-wire DS18b20 connector
35. 1-wire pin select
36. LCD Graphic display connector
36. Zoccolo I2C EEPROM memory
La scheda permette la prototipazione rapida di gran parte dei PICmicro 40 pin grazie allo zoccolo da 40 PIN [18] e ai connettori
per la programmazione in-circuit [5] [6]. Tutti i piedini di I/O sono disponibili sui rispettivi connettori e inoltre vi è un oscillatore al
quarzo da 4 MHz a 20 MHz [32] intercambiabile; quando viene impiegato l’oscillatore interno dei PIC (Pic ultima generazione), i
jumper [33] permettono di selezionare i rispettivi piedini OSC1 e OSC2 come digital I/O Pin.
NA – L11
http://www.mrscuole.net/anxapic/
2
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
Programmare i PIC in linguaggio C
Il CCS PCWH Pic-C Compiler – Il primo esercizio
Conosciamo il sistema con un semplice
Esercizio => Blinking Led
Led lampeggiante che si accende e si spegne ogni mezzo secondo
Punti fondamentali per:
Analisi - Progettazione - Stesura del software
1. Analisi e schema per punti cronologici del
problema con definizione dell’HW [schema elettrico]
2. Flow – Charts          
3. Scrittura del codice
NA – L11
http://www.mrscuole.net/anxapic/
3
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
Programmare i PIC in linguaggio C
Il CCS PCWH Pic-C Compiler – Il primo esercizio
1.
•
Analisi e stesura per punti cronologici del problema con definizione dell’HW
Per questo semplice esercizio sfruttiamo l’HW implementato sulla scheda di sviluppo
utilizzando il led on board. Il led è collegato al pin RD3 (PortD pin3) del µC [cfr. Schematic
AnxaPic4].
Led on board attivo
Sulla AnxaPic4 demo-Board
close jumper DL1 on (cfr. Slide
2, indicatore [22])
NA – L11
http://www.mrscuole.net/anxapic/
4
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
Programmare i PIC in linguaggio C
Il CCS PCWH Pic-C Compiler – Il primo esercizio
2. Flow – Chart
È questa una condizione
di verifica sempre TRUE!
Infatti la condizione di verifica
(1>0) restituisce sempre TRUE
Loop (ciclo) infinito!
NA – L11
http://www.mrscuole.net/anxapic/
5
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
Programmare i PIC in linguaggio C
Il CCS PCWH Pic-C Compiler – Il primo esercizio
3.
Il codice sorgente
Prima di analizzare il codice opportuno una semplice introduzione sul CCS Pic Compiler.
A partire dalla versione 4 il CCS PCWH Pic-C compiler presenta la classica interfaccia a barre orizzontali.
Nuovi menu a barre
orizzontali per il CCS
PCWH 4.0 e superiori
NA – L11
http://www.mrscuole.net/anxapic/
6
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
Programmare i PIC in linguaggio C
Il CCS PCWH Pic-C Compiler – Il primo esercizio
3.
Il codice sorgente
1.
Aprire il compilatore CCS PCWH
2.
Creare una cartella ‘blinkingLed’ che
conterra` tutti i files relativi al nostro
progetto (.c, .h., .lst, .cof, .hex ....)
3.
Attiviamo la barra Project e scegliamo
l’opzione => pic wizard
[Pic wizard è un utile tool di questo compilatore
che ci agevola notevolmente nelle impostazioni
Hardware per il nostro controllore]
4.
Sulla nuova finestra aperta, inseriamo
il nome: “Lez11_blk_Led” per il file
di progetto e quindi salviamo il tutto.
NA – L11
http://www.mrscuole.net/anxapic/
7
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
Programmare i PIC in linguaggio C
Il CCS PCWH Pic-C Compiler – Il primo esercizio
3.
Il codice sorgente
Definiamo i parametri del progetto
Nella finestra General scegliamo il micro e attiviano le
opportune opzioni di scelta [fuses]
NA – L11
Con la linguetta Code è possibile verificare il codice
generato che verrà inserito nel nostro file sorgente
http://www.mrscuole.net/anxapic/
8
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
Programmare i PIC in linguaggio C
Il CCS PCWH Pic-C Compiler – Il primo esercizio
3.
Il codice sorgente
Definiamo i parametri del progetto
Attiviamo la finestra Communications e deselezioniamo
l’opzione use RS232
NA – L11
Con la linguetta Code è possibile verificare il codice
generato che verrà inserito nel nostro file sorgente
http://www.mrscuole.net/anxapic/
9
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
Programmare i PIC in linguaggio C
Il CCS PCWH Pic-C Compiler – Il primo esercizio
3.
Il codice sorgente
Per questo progetto non dobbiamo definire nessun’altro parametro e quindi click du OK!
Nella finestra di editor appare il codice automaticamente generato.
Dovremo avere una videata
simile a questa, se così non è
si può sempre settare l’editor
dal menù “Options” ->
“Editor proprierties…”.
------------------------------queste righe sono generate
automaticamente (setup
periferiche ).
NA – L11
http://www.mrscuole.net/anxapic/
10
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
Programmare i PIC in linguaggio C
Il CCS PCWH Pic-C Compiler – Il primo esercizio
3.
Il codice sorgente
Spesso per i files da includere nel
progetto è meglio lavorare con
percorsi relativi (indipendenti dal
PC in uso) che considerare Path
e directory con perscorsi
assoluti!
Nell’esempio a fianco il file
“Lez11_dlk.Led.h”
verrà ricercato nella cartella di lavoro
del progetto e non viene presa in
considerazione tutto il percorso di
ricerca come impostato nella slide
precedente, diventa in questo caso
più semplice il riutilizzo dello stesso
progetto su un altro PC oltre che su
quello originale su cui il progetto è
stato generato.
Il System Setup è molto agevolato
con l’ausilio del tool “Pic Wizard”
NA – L11
http://www.mrscuole.net/anxapic/
11
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
Programmare i PIC in linguaggio C
Il CCS PCWH Pic-C Compiler – Il primo esercizio
3.
Il codice sorgente
Il file “Lez11_blk_Led.h”, generato in automatico con “Pic Wizard”
In questo file le impostazioni Hardware e le direttive [fuses] di programmazione per il microcontrollore impiegato
NA – L11
http://www.mrscuole.net/anxapic/
12
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
Programmare i PIC in linguaggio C
Il CCS PCWH Pic-C Compiler – Il primo esercizio
3.
Il codice sorgente: aggiungiamo codice al nostro programma
[Built-In functions]
funzioni interne al compilatore PCWH :
• output_high(<pin name>);
• output _low(<pin name>);
• delay_ms(xxx);
Vedere il manuale del compilatore (Help
on line)
N.B.=> I “pin name” sono definiti nel file “16F877A.h”
incluso in automatico in “Lez11_blk_Led.h”. In questo
file vengono definiti tutti i riferimenti impiegati nel
codice.
Questi files di testo sono presenti nella cartella
“Devices” della directory di installazione del nostro
sistema di sviluppo.
NA – L11
http://www.mrscuole.net/anxapic/
13
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
Programmare i PIC in linguaggio C
Il CCS PCWH Pic-C Compiler – Il primo esercizio
3.
Il codice sorgente: Compilare il codice prodotto
Compiliamo il progetto
Il risultato della compilazione è un file
binario (.hex) che deve essere caricato
nella memoria di programma del nostro
Pic, mediante opportuno programmatore
(es. PicKit2 programmer)
Oltre al file binario (estensione .hex)
vengono generati altri utili file con
estensioni diverse (.err, .lst, .cof, …).
Tutti questi files ritornano utili per
esaminare le varie fasi del codice; in
particolare nel nostro caso è molto
utile il file con estensione “.cof” perché
può essere utilizzato nella fase di
simulazione con Proteus VSM .
“Lez11-blk_Led.cof”
contiene
i
riferimenti con il codice sorgente
durante la fase di debug con Proteus
VSM.
Bisogna indicare questo file da
caricare nel Micro per la simulazione
con Proteus VSM
NA – L11
http://www.mrscuole.net/anxapic/
14
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
Programmare i PIC in linguaggio C
Il CCS PCWH Pic-C Compiler – Il primo esercizio
4.
La simulazione con Proteus VSM
La simulazione con Proteus VSM in ambiente ISIS
Nel micro
PIC16F877A caricare
il file
“Lez11_blk_Led.cof”
per la simulazione
NA – L11
http://www.mrscuole.net/anxapic/
15
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/
Programmare i PIC in linguaggio C
Il CCS PCWH Pic-C Compiler – Un esercizio proposto
2 Blinking Led => Due led lampeggianti in modo alternativo con intervallo di 500 ms tra la
condizione ON e quella OFF. [Suggerimento => Led collegati su RD2 e RD3]
Sviluppare l’esercizio seguendo le semplici fasi di sviluppo:
1.
Analisi del problema, schematizzazione a blocchi (se necessario), con schema elettrico
finale operativo
2.
Impostazione del Software e relativo Flow – Chart
3.
Codice sorgente in linguaggio C [CCS Pic PCWH Compilator]
4.
Simulazione in ambiente Proteus VSM interfaccia ISIS
5.
Presentazione del lavoro finale su demo-Board opportuna (Gp_Mbus …. AnxaPic4)
6.
Opportuna documentazione conclusiva
NA – L11
http://www.mrscuole.net/anxapic/
16
http://www.mrscuole.net/anxapic/
http://www.mrscuole.net/anxapic/