|
adc-87X.h
|
Descripción:
Librería
de funciones ADC de bajo nivel para la familia 16f87x y
compatibles; permite separar el proceso de lectura ADC en funciones
pequeñas, escritas directamente en asm, por lo que el
código generado es mucho menor y más ràpido.
|
Funciones:
adc_conf
presc, canales
Configura
conversor A/D 10 bits, donde "presc" es el prescaler utilizado;
valores admitidos:
FOSC/2
FOSC/4
FOSC/8
FOSC/16
FOSC/32
FOSC/64
FOSC_RC
y "canales" la configuración de canales analógicos
deseada;
valores posibles (ver datasheet):
A8_R0
A7_R1
A5_R0
A4_R1
A3_R0
A2_R1
A0_R0
A6_R2
A6_R0
A5_R1
A4_R2
A3_R2
A2_R2
A1_R0
A1_R2
Ejemplo:
Configura
ADC 10 bits, prescaler=1/32 de freq. osc. 2 entradas analógicas
y Vref+ en RA3.
adc_conf
FOSC/32, A2_R1
adc_conf8 presc, canales
Configura
conversor A/D 8 bits, el resto funciona igual que para 10 bits
adc_open
canal
Abre
canal indicado, los posibles valores son:
CH0
CH1
CH2
CH3
CH4
CH5
CH6
CH7
adc_read
Lee
un canal analógico previamente configurado (10 bits) y abierto.
adc_read8
Lee
un canal analógico previamente configurado (8 bits) y abierto.
adc_convert
Realiza la conversión
A/D sin leer los registros ADRESL y ADRESH
en un canal analógico
previamente configurado (8 y 10 bits) y abierto.
adc_close
Desactiva
el módulo ADC, quedando sin modificar la última
configuración.
|
Ejemplo de uso:
|
'________________________________________________________________________________
'
'
Ejemplo de uso del driver adc-87X.h
'
'
' Un led
conectado a PORTB.0 parpadea a la velocidad leida en AN0
'
'________________________________________________________________________________
'
'General
hardware configuration
#chip 16F876A, 20
#config HS_OSC, WDT_OFF,
LVP_OFF, PWRTE_ON
#include <adc-87X.h>
'________________________________________________________________________________
DIR PORTA.0 IN
DIR PORTB OUT
adc_conf8 FOSC/32,
A1_R0 'Configuración ADC 8 bits, un
canal adc, ningún Vref.
adc_open
CH0
'Abrir canal 0
do
periodo = adc_read8
'Leer
canal ADC (8 bits)
PORTB
= PORTB xor
1 'Invertir el valor en PORTB.0
wait
periodo ms
'Esperar el tiempo leido en ADC
loop
|
|
|