ELEMANIA
PIC16F690 - HI-TECH C Compiler
Compilatori C per il PIC

Fra i linguaggi di programmazione ad alto livello, uno di quelli maggiormente utilizzati per la sua versatilità e facilità di uso in un ampia gamma di piattaforme hardware diverse, è senza dubbio il linguaggio C. Maggiori informazioni sulla sintassi generale di questo linguaggio possono essere trovate sul sito Programmiamo. Qui nel seguito ci occuperemo soltanto nello specifico della programmazione in linguaggio C per i PIC.

Diversi produttori hanno realizzato compilatori C per i PIC, molti dei quali si integrano nell'ambiente MPLAB IDE e/o dispongono di un proprio ambiente di sviluppo autonomo. Fra i compilatori più utilizzati ci sono indubbiamente quelli prodotti dalla stessa MicroChip e dalla consociata HI-TECH Software, mentre altre soluzioni vengono commercializzate da CSS, MicroElektronika, Sourceboost e altri ancora. Ancora da segnalare, sempre da MicroChip, il nuovo compilatore XC8 che ormai sostituisce HI-TECH C.

Compilatore HI-TECH C: installazione

Nel seguito utilizzeremo il compilatore C prodotto dalla HI-TECH Software, un'azienda australiana che nel 2009 è stata acquistata dalla stessa MicroChip. Il compilatore dell'Hi-TECH è gratuito (nella versione Lite, con alcune limitazioni) e si integra perfettamente nell'ambiente di sviluppo MPLAB-IDE.

Il compilatore non è più supportato dalla Microchip ma può essere reperito in rete da altri siti (alcune delle versioni più recenti di MPLAB-IDE contengono già il compilatore HI-TECH e dunque non è necessario procedere al download).

Al momento dell'installazione scegliere Operate in Lite mode come mostrato in figura:

image

E' importante nella schermata successiva mettere la spunta ad Add to environment path:

Una precisazione importante sulle convenzioni usate

Chi inizia a programmare in C usando l'HI-TECH compiler può facilmente essere confuso dal fatto che in rete si trovano programmi scritti usando convenzioni diverse. Per la maggior parte tali programmi, se non recenti, non vengono compilati correttamente dalle ultime versioni di HI-TECH C.

Il problema è dovuto al fatto che, con le successive versioni, il compilatore HI-TECH ha cambiato molte delle convenzioni utilizzate per i nomi, in particolare per quanto riguarda i file include, i nomi delle costanti e i nomi delle funzioni. Per esempio, un tipico programma potrebbe iniziare in questo modo:

#include <pic.h>

#define _16F877
__CONFIG( HS & WDTDIS & PWRTDIS & BORDIS & LVPDIS & WRTEN & DEBUGDIS & UNPROTECT );

#define XTAL_FREQ 20MHZ

#include "delay.c"

...

La maggior parte delle convenzioni di nomi usate in questo esempio non funzionano più con le ultime versioni di HI-TECH C (il programma produce messaggi di errore quando viene compilato). Nel seguito faremo riferimento alle convenzioni utilizzate da HI-TECH C V9.83 che attualmente (2013) è la più recente disponibile. E' ovvio che successive versioni del compilatore potrebbero modificare ulteriormente le convenzioni usate, per cui si invita il lettore a consultare i manuali del compilatore per risolvere tali problemi.

Un modo per poter eseguire vecchi programmi sulle nuove versioni del compilatore è premettere all'inizio del programma (prima del primo include iniziale):

 #define _LEGACY_HEADERS

oppure in MPLAB-IDE aggiungere questa dichiarazione in Project/Build Options/nomefile in Define Macros come mostrato in figura (premere su Add... per inserire definire la Macro; in questo modo la dichiarazione verrà aggiunta automaticamente a tutti i file sorgenti del progetto):

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it