ELEMANIA
PIC16F690 - Funzioni di library
Funzioni di library del C standard

Le funzioni di library del C sono funzioni predefinite e incluse per default in qualsiasi installazione standard del linguaggio. In pratica è possibile usare le funzioni di library come se fossero normali istruzioni del linguaggio stesso, a patto di includere in testa al file c il file include opportuno. Per esempio il seguente semplice programma calcola l'elevamento a potenza di base con esponente exp e salva il risultato in ris:

#include <htc.h>

#include <math.h>

void main()
{
unsigned int base=2, exp=5, ris;

ris = pow(base, exp);
}

Si noti il #include <math.h> all'inizio, necessario per poter utilizzare la funzione pow della libreria matematica.

In generale tutte le funzioni di library standard del linguaggio C possono essere utilizzate programmando il PIC (anche se le funzioni di input e output, come printf e scanf, funzionano ovviamente in modo un po' differente, dal momento che il PIC solitamente non è collegato a un monitor e a una tastiera).

Macro definite nel file pic.h

Oltre alle funzioni di library standard, il file include pic.h (che viene incluso automaticamente attraverso il file htc.h) contiene la definizione di una serie di macro (per la differenza fra macro e funzioni vedi qui) e di funzioni che possono essere utilizzate nei programmi come normali funzioni di library.

Le più importanti sono le seguenti (le macro si distinguono dalle funzioni per l'assenza di un vero e proprio prototipo - in ogni caso non bisogna preoccuparsi troppo di questo fatto, poiché a quasi tutti gli effetti è possibile usare una macro come una normale funzione):

Alcune delle precedenti funzioni e macro sono già state utilizzate nel nostro primo esempio di programma. Per maggiori dettagli sulle altre, rimandiamo il lettore al manuale del compilatore.

 

Alcune macro utilissime che vale la pena di conoscere

Oltre alle macro "di library" ce ne sono alcune che non sono incluse nel file pic.h, ma che sono talmente utili che vale la pena di conoscere. Le macro descritte nel seguito devono essere incluse manualmente all'inizio del proprio programma nel seguente modo:

#include <htc.h>

#define set_bit(ADDRESS,BIT) (ADDRESS |= (1<<BIT))
#define clear_bit(ADDRESS,BIT) (ADDRESS &= ~(1<<BIT))
#define test_bit(ADDRESS,BIT) (ADDRESS & (1<<BIT))

Vediamole ora rapidamente:

Il seguente breve esempio dovrebbe chiarire l'uso di queste macro:

if (test_bit(PORTA,2))                // se il bit 2 di PORTA è settato
        clear_bit(PORTA,2);           // resetta il bit 2 di PORTA

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it