Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

17/03/2009 #1


Problema para manejar datos del ADC del 16F690
Hola, soy nuevo con los pic y estaba tratando de aprender a utilizar el ADC del PIC y manejar datos de este. En fin entendi muy bien como se configura, como se hace para que inicie la conversion. Tambien lei que este convertidor tiene una resolucion de 10bits, entonces guarda los 8 primeros bits en un registro especial y los otros dos en otro registro especial separado.

Mi duda es esta: Necesito poder comparar el valor que obtuve de la conversion, el cual esta en dos registros separados, por ejemplo con otro valor para ver si el valor de la conversion fue menor/mayor o igual al valor con el que lo compare. Si fueran registros de 8 bits simplemente realizaria una resta y verificaria el acarreo y listo. Pero al ser 10 bits se me complico la comparacion.

Necesitaba realizar esto por ejemplo para leer un potenciomentro y dependiendo de la posicion mostrar un numero en un display de 7 segmentos. En realidad solo estoy tratando de aprender a realizar estas comparaciones. Mi objetivo más adelante es poder utilizar un teclado por medio de un solo pin del ADC.

A ver si me pueden ayudar con este problema . Gracias!
02/10/2011 #2


este es un codigo q hace la conversion de bits
org 0
Start:
bsf STATUS,RP0 ; seleccionar el banco 1
movlw 0xFF
movwf TRISA ; hacer el PortA todo de entradas
clrf TRISC ; hacer el PortC todo de salidas
movlw 0x10 ; A2D Clock Fosc/8
movwf ADCON1
bcf STATUS,RP0 ; seleccionar el banco 0

bcf STATUS,RP0 ; seleccionar el banco 2
bsf STATUS,RP1
movlw 0xFF ; ponemos todo el Port A analogicas
movwf ANSEL
bcf STATUS,RP0 ; seleccionar el banco 0
bcf STATUS,RP1

movlw 0x01
movwf ADCON0 ; configurar A2D para el canal 0 (RA0), los justifica a la izquierda y qda en adresh pag 112 pdf pic16f690, y enciende el modulo A2D
MainLoop:
nop ; wait 5uS for A2D amp to settle and capacitor to charge.
nop ; wait 1uS
nop ; wait 1uS
nop ; wait 1uS
nop ; wait 1uS
bsf ADCON0,GO ; start conversion
btfss ADCON0,GO ; este bit cambiara a cero cuando el ciclo sea completado
goto $-1

swapf ADRESH,w ; Copy the display to the LEDs +copia la pantalla en los leds+
movwf PORTC
goto MainLoop
end
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.