El compilador XC8 té nombroses funcions (principalment matemàtiques) disponibles. En aquesta pàgina farem un resum de la majoria. Per trobar informació detallada de totes les funcions disponibles podeu consultar l'apèndix A de la guia d'usuari del compilador XC8 al web de Microchip.
Per fer servir una funció cal incloure la biblioteca corresponent. Per exemple, per incloure la biblioteca stdlib.h faríem:
... #include <stdlib.h> ...
Important: Aquestes funcions són genèriques i quan es compilen poden implicar una important ocupació de memòria, tant de dades com de programa. Abans de fer servir una funció, convé preguntar-se si realment és necessària. Per exemple, la funció pow està dissenyada per implementar tota mena de potències i, per tant, ocupa molta memòria; si hem d'elevar un nombre al quadrat, és preferible multiplicar-lo per ell mateix, operació que requereix molta menys memòria.
Funció | Utilització | Tipus | Biblioteca | Arguments | Comentaris | |
Nom | Tipus | |||||
abs | Valor absolut | int | stdlib.h | x | int | |
ceil | Arrodoniment per excés | double | math.h | x | double | |
exp | Exponencial ex | double | math.h | x | double | |
fabs | Valor absolut | double | math.h | x | double | |
floor | Arrodoniment per defecte | double | math.h | x | double | |
fmod | Residu de la divisió amb reals | double | math.h | x | double | Retorna x - m · y
m és la part entera del resultat de x/y |
y | double | |||||
labs | Valor absolut | long | math.h | x | long | |
log | Logaritme natural | double | math.h | x | double | |
log10 | Logaritme decimal | double | math.h | x | double | |
pow | Potència xy | double | math.h | x | double | No recomanable per elevar a exponents enters petits,
en aquests casos és millor multiplicar |
y | double | |||||
rand | Valor pseudoaleatori entre 0 i 32767 | int | stdlib.h | |||
round | Arrodoniment a l'enter més proper | double | math.h | x | double | |
sqrt | Arrel quadrada | double | math.h | x | double | L'argument ha de ser positiu |
srand | Inicialitza rand amb una llavor | void | stdlib.h | x | unsigned int | |
trunc | Suprimeix els decimals del nombre | double | math.h | x | double |
Funció | Utilització | Tipus | Biblioteca | Arguments | Comentaris | |
Nom | Tipus | |||||
acos | Arccosinus | double | math.h | x | double | Angle en radians |
asin | Arcsinus | double | math.h | x | double | Angle en radians |
atan | Arctangent | double | math.h | x | double | Angle en radians |
atan2 | Arctangent(y/x) | double | math.h | y | double | |
x | double | |||||
cos | Cosinus | double | math.h | x | double | Angle en radians |
cosh | Cosinus hiperbòlic | double | math.h | x | double | |
sinh | Sinus hiperbòlic | double | math.h | x | double | |
tanh | Tangent hiperbòlica | double | math.h | x | double | |
sin | Sinus | double | math.h | x | double | Angle en radians |
tan | Tangent | double | math.h | x | double | Angle en radians |
Funció | Utilització | Tipus | Biblioteca | Arguments | Comentaris | |
Nom | Tipus | |||||
isalnum | Mira si el caràcter és alfanumèric, o sigui 0-9, a-z o A-Z | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
isalpha | Mira si el caràcter és alfabètic, o sigui a-z o A-Z | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
isascii | Mira si el caràcter és un ASCII de 7 bit | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
iscntrl | Mira si el caràcter és un dels de control, o sigui no imprimible | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
isdig | Mira si el caràcter és un dígit, o sigui 0-9 | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
isdigit | Mira si el caràcter és un dígit, o sigui 0-9 | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
islower | Mira si el caràcter és una lletra minúscula, o sigui a-z | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
isprint | Mira si el caràcter és un espai, una lletra, una xifra o bé un d'aquests: ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ |
int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
isgraph | Mira si el caràcter és una lletra, una xifra o bé un d'aquests: ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ |
int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
ispunct | Mira si el caràcter és un d'aquests: ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ |
int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
isspace | Mira si el caràcter és un espai, un tabulador o un salt de línia | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
isupper | Mira si el caràcter és una lletra majúscula, o sigui A-Z | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
isxdigit | Mira si el caràcter és un dígit hexadecimal, o sigui 0-9, a-f o A-F | int | ctype.h | c | char | Si ho és dona un valor que s'interpreta com a cert, sinó un que s'interpreta com a fals |
tolower | Si l'argument és una lletra majúscula torna la minúscula que li correspon, en cas contrari retorna l'argument |
char | ctype.h | c | int | |
toupper | Si l'argument és una lletra minúscula torna la majúscula que li correspon, en cas contrari retorna l'argument |
char | ctype.h | c | int | |
toascii | Converteix el valor a ASCII de 7 bits posant a 0 els altres bits | char | ctype.h | c | int |
Funció | Utilització | Tipus | Biblioteca | Arguments | Comentaris | |
Nom | Tipus | |||||
CLRWDT | Reinicia el temporitzador de vigilància | void | xc.h | |||
di | Activa les interrupcions | void | xc.h | |||
ei | Desactiva les interrupcions | void | xc.h | |||
NOP | Pausa de tres cicles del rellotge de programa | void | xc.h | |||
SLEEP | Posa el microcontrolador en mode d'espera | void | xc.h |
Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.