Let's go PIC !!! Articolo pubblicato su www.grix.it
|
|
Nuovo corso di programmazione dei microcontrollori PIC.
Creazione del progetto e simulazione
Questa pagina si colloca a metà tra l'essere
un tutorial e un semplice progetto "Ciao Mondo". quello che ogni novizio dei PIC
deve avere eseguito almeno una volta nella vita. L'articolo è pensato in modo
da essere sintetico e conciso. Tutto quello che è in più è stato rimosso o
spostato in appendice di fine pagina per evitare perdite di tempo
Innanzitutto capiamo il concetto base che è bene
usare gli strumenti ufficiali della casa costruttrice. E questo lo dico a
malincuore dato che io sono un convintissimo promotore dell'opersurce,
linux..ecc. Però, se non partiamo tutti con lo stesso piede non ci capiremo.
quindi bando alle ciance e cominciamo.
Andiamo tutti su: www.microchip.com e scarichiamo Mplab ide.
il link diretto è:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002
Comunque lo troverete facilmente anche senza usare questo link.
L'installazione sarà piuttosto semplice, basterà dire praticamente sempre SI ad ogni domanda, ma fate bene attenzione, una delle domande sarà relativa ad "aggiungere le variabile d'ambiente alla path" a questa è importante dire di "si" per non avere poi errori di compilazione.
Durante la fase di installazione vi
accorgerete che un prodotto di un'altra azienda viene richiamato ed istallato.
Si tratta del compilatore C per PIC16 che sarà poi riconosciuto dall'ambiente
come HITECH UNIVERSAL TOOL SUIT che abilità la compilazione per pic 10-12-16.
per il momento impariamo ad usare questi.
Attivazione secondo default
Facendo doppio click sull'icona di Mplab che vi è
comparsa sul desktop si attiva l'ambiente di sviluppo. Per default è impostato
su Mpasm che permette la compilazione di programmi scritti in assembly. Noi
dovremmo cambiare questo default e attivare l'universal tool suite di hitech che
già è stato installato contestualmente a Mplab.
Inserimento delle librerie
elementari
Il primo programma sarà estremamente banale ma
fortemente didattico. Lo scopo di questa prima lezione non è imprare il "C" ma
semplicemnte di essere in grado di muoverci con agilità nell'ambiente.
Create nella vostra cartella documenti una cartella "pic_project" e scaricate e scompattateci dentro questo file zip.
UserFiles/ad.noctis/File/ciao_mondo.zip
Dentro ci sono 4
files:
Il primo, scheletr.c, contiene una bozza di programma funzionante che io ho creato per voi al fine di evitarvi "sofferenze fuori tema" dallo scopo di questa prima "lezione-tutorial", in appendice vi spiego come funziona e cosa fa.
Sappiate che fino a che non avrete sufficiente esperienza potrete iniziare OGNI VOSTRO NUOVO PROGRAMMA usando questo scheletro. In effetti con le opportune variazioni può diventare qualsiasi altra cosa.
Solo relativamente a questa prima prova potrete mollare i file nella radice della cartella pic-project, dato che si presume che essendo ilprimo che fate non ce ne siano altri. Appena avrete un po di esperienza in più, la folder pi-project dovrà contenere una cartella con il nome di ogni programma che volete realizzare.
Non lo ho detto,
ma è ovvio, che solo per questa prova il file potrà continuare a chiamarsi
scheletro.c ma in futuro come prima mossa lo cambierete in
vostro_nome_programma.c
Due file hanno il medesimo nome ma diversa estensione. Spegherò nelle lezioni di "C" che significa e perchè è così, per il momento è più importante sapere dove devono stare e come usarle. Del resto già dal nome si intuisce che generano un ritardo.
Solo per questa prima prova lasciamo le librerie nella cartella pic_project. Scoprirete presto che sarà più conveniente likarle da una posizione più naturale che è la cartella "include" del compilatore, accessibile da c:programmiHI-TECH Softwarepicc9.70include ma questo comporterà una piccola modifica della riga di comando di inclusione nel sorgente di scheletro.h
Il quarto file è il "progetto". E' una cosa che ho aggiunto io ma che in realtà non vi serve per partire. Potrà servire a chi non riesce proprio a venirne fuori, perchè cliccandoci sopra...se avete nesso i file nel posto che vi ho indicato, attiva tutto in automatico. Questo file viene creato in automatico durante la fase di "project wizard" che vado ora a spiegarvi.
Partenza
L'avventura comincia da qua. Via con il
cronometro. in 10 minuti ce la dovremmo cavare.
Clicchiamo su
project->project_wizard
.
Comparirà una schermata di benvenuto che vi segnala lattivazione della procedura automatica di creazione del progetto. Con il termine "progetto" si intende un contenitore per tutti i file di supporto che faranno parte di cio che stiamo per creare.
IL primo passo "dell'assistente nuovo progetto" ci chiede di selezionare il tipo di PIC "device" che vogliamo utilizzare. Consiglio di utilizzare il 16F877A. Si tratta di un 40 pin dual in line. potente, completo e di facile utilizzo.
Il secondo passo consiste nella selezione del
coretto compilatore. Se sbagliamo qui ci saranno comportamenti anomali nelle
fasi successive con il conseguente non funzionamento. assicuratevi di
selezionare come in figura.
Il terzo passo
chiede di dare un nome al progetto. Deve essere chiaro il concetto infomatico di
"progetto". Questo è più una "cartella" che un singolo file. In molti
applicativi creare un progetto significa veder comparire una vera e proprio
cartella e poi veder inserire in automatico dei file li dentro. Per Mplab il
progetto è un file avente l'icona rossa di Mpalb e estensione mcp (mcrochip
project). Questo file permette alla piattaforma Mplab di correlare tra loro i
file in fase di linkaggio. Per questo motivo è opportuno che stiano tutti dentro
ad una cartella. Se non la avete già creata (la pic_project) fatelo prima di
proseguire.
Dare il nome al
progetto non è sufficiente. é indispensabile anche dire al browser (gestore
delle cartelle del sistema operativo) dove posizionare i file creati e dove
linkarli (collegarli tra loro) per creare il file esadecimale (il .hex) che è
l'unico trasferibile nella memoria del PIC. (concetto analogo ad ogni altro
microcontrollore).
Come vediamo nell'immagine andiamo a salvare il progetto che stiamo creando nella cartella pic_project che abbiamo predisposto sulla cartella documenti.
A questo punto ci viene mostrato ilpercorso in cui abbiamo deciso di salvare. Se coincide con le aspettative semplicemnte confermiamo cliccando su avanti.
Il quarto passo
consiste nell'inserimento dei files all'interno del progetto. Quindi dovrete
vedere quanto nella figura sotto. Appare questa situazione solo se avete seguito
alla lettera le indicazioni precedenti.
Come vediamo facilmente sulla colonna di sinistra abbiamo il browser nel quale vediamo la cartella pic_project e il suo contenuto. Dobbiamo quindi aggiungere i tre file cliccandoci sopra e agendo su "Add"
ecco la situazione dopo l'inserimento dei files
Viene proposta un'anteprima del progetto che stiamo andando a creare. Se tutto coincide con le aspettative confermiamo.
Siamo vicini alla
fine. una volta confermato verrà aperto in automatico solo l'albero del
progetto, di solito a sinistra, ed ha l'aspetto di un insieme di cartelle aperte
il cui significato e scopo verrà spiegato a suo tempo. Viene aperta anche una
finestra di nome output, inizialmente vuota. In questa finestra comparirà
l'output della compilazione, ovvero il resoconto del fatto che sia andato o meno
a buon fine la costruzione del file .hex altre informazioni.
Facendo doppio clik sul file scheletro.c si apre l'editor di programmazione. Ecco qui sotto il risultato.
Come già detto, ora non è il momento di mettersi a commentare il codice. Dobbiamo imparare ad usare con scioltezza l'editor e in modo particolare il compilatore. Quindi .... compiliamo.
I comandi di compilazione sono quei due quadretti rosso e neri viciono alla scritta "cheksum"
Se non siete
usciti dal seminato cliccando su questo tasto dovrete vedere partire la
compilazione con l'effetto visibile qui sotto.
La comparsa della scritta "Build successful!" indica che è stato cretao il file .hex che avrà lo stesso nome del progetto e del file .c che contiene il main (inmancabile in ogni programma c).
Andiamo a verificare quale è stato l'effetto della compilazione guardando l'output nella cartella che contiene il progetto.
Sono stati creati davvero molti files. Tutti sono utili per la funzionalità del progetto, ma solo uno è quello trasferibile nella memoria del PIC. questo è "ciao_mondo.hex". per trasferire il file bisogna munisirsi di un programmer.
Stop con il
cronometro !!!
Chi ha un po di
dimestichezza con il sistema operativo dovrebbe avere fatto tutto in circa 10
minuti.
Esiste anche la possibilità di lavorare sotto linux, chi si volesse cimentare scarici sdcc, ma per il momento non ne parliamo perchè non è argomento di questo articolo guida.
E' possibile testare il funzionamento del programma usando il programma Real PIC simulator.
E' scaricabile da internet nella versione free. se non lo trovate contattatemi che fi faccio vedere dove è.
Cliccando su questa icona dovrebbe partire il simulatore. Il suo funzionamento è molto semplice.
Benvenuti nel meraviglioso mondo della programmazione dei PIC in linguaggio C.
Appendice di fine pagina.
Per cominciare L'avventura alla grande dovreste
munirvi di un sistema di sviluppo e di uan demoboard in grado di soddisfare le
esigenze almeno dei primi programmi didattici. A tal scopo ho pubblicato nel mio
sito un quantità piuttosto ben nutrita di schede elettronici con varie
potenzialità.
L'ultima nata, che è anche la più potente nonchè la più completa è la Micro-GT versatile I.D.E. (integrated developed enviroment).
Un esemplare testato e collaudato la vedete nella foto sottostante.
I vari corsi di programmazione dei MICROPIC che intendo proporre dora innanzi, con riferimento alla scuola dove insegno, agli studenti lavoratori di ingegneria dell'università di Padova (A.L.S.I.), ai vari centri di formazione , e se il pubblico lo richiedesse anche in forma gratuita/divvulgativa, qui su grix, saranno basati su questo sistema di sviluppo.
Il progetto, comprensivo di schemi, file eagle, file costruttivi gerber, esercizi dimostrativi, e software di corredo sono già disponibili su grix e sul mio sito personale.
Se qualcuno volesse risparmiarsi l'onere di autocostruirsi il PCB glielo posso inviare dato che dispongo a magazzino di qualche esemplare. Chi fosse interessato mi contatti personalmente.
Riassumo brevemente le caratteristiche tecniche di questo sistema di sviluppo.
Il sistema riconosce i seguenti
PIC:
I seguenti controller sono stati testati e risultano pienamente supportati:
Non mi resta che augurare a tutti buon lavoro, e perchè no....buon divertimento