Un altro prezioso tutorial dell'amico Marco Gottardo impegnato nella sua opera di divulgazione di questa bellissima materia. Ancora una volta ospito con piacere il suo lavoro sperando di raggiungere il maggior numero di persone possibile.

Let's GO !!!    PIC!


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

Impostazione del compilatore.


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.

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.

  1. carichiamo il file ciao_mondo.hex
  2. clicchiamo e trasciniamo il led rosso verso il centro della pagina, compare la led bar
  3. impostiamo la led bar cliccando sul primo lede assegnando PORTB 0
  4. Clicchiamo sul triangolo verde e MAGIA!!!  se avete seguito alla letere le mie indicazioni il led lampeggia

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

Marco G.