Autor Tema: Pequeñas dudas existenciales  (Leído 2242 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado Juanp

  • PIC10
  • *
  • Mensajes: 13
Pequeñas dudas existenciales
« en: 07 de Marzo de 2007, 02:37:03 »
Hola, soy un usuario principiante de PICs y tengo unas pequeñas dudas sobre el pic 16F87X. 

1) Quisiera saber si antes de una conversión con el CAD es necesario limpiar los registros ADRESL y ADRESH o si cada vez que se realiza una conversión estos registros se sobreescriben.



A continuación voy a poner el fragmento de una rutina, en esta misma voy a señalar las dudas que tengo

;--------- Configuración inicial del Conversor A/D ---------------------------

   BCF   STATUS,RP1   
   BSF   STATUS,RP0   ;Selecciono Banco 1

   MOVLW   80   ; Los 6 bits más significativos serán leidos como cero
   MOVWF   ADCON1   ; en la cadena de 16 bits donde solo uso 10

   BCF   STATUS,RP0   ; Selecciono Banco 0
   

;--------- Inicio de la conversión ---------------------------------------
      
   MOVLW   25   ; Grabo 00100101. Configuro RA5 como la entrada
   MOVWF   ADCON0   ;a convertir y comienzo la conversión
LOOP    BTFSC   ADCON0,2    ; Testeo el bit de fin de conversión   GOTO   LOOP   ; sigo esperando fin de conversión
   BCF   ADCON0,0   ; Apago el módulo A/D


2) quisiera saber si hasta ahora la rutina anterior es correcta para medir y digitalizar una señal analógica.



3) Es correcto lo siguiente para visualizar la parte baja en el Puerto C? La idea es poner unos LEDs que estén apagados o prendidos (representando unos y ceros) para leer el dato.


   BSF   STATUS,RP0   ; Selecciono Banco 1
   MOVF   ADRESL,0
   BCF   STATUS,RP0   ; Selecciono Banco 0
   MOVWF   PORTC



4) Ahora mi gran problema. Solo quiero visualizar solo los dos bits menos significativos en dos salidas del Puerto B (utilizando unos LEDs) pero la verdad no tengo ni idea como hacerlo.
   MOVF   ADRESH,0      

y no se como continuarlo. Si alguien me pudiera decir como hacer le estaría muy agradecido.

Saludos para todos y gracias.



Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Pequeñas dudas existenciales
« Respuesta #1 en: 07 de Marzo de 2007, 13:42:49 »
1) Quisiera saber si antes de una conversión con el CAD es necesario limpiar los registros ADRESL y ADRESH o si cada vez que se realiza una conversión estos registros se sobreescriben.

No es necesario. El PIC sobreescribirá su contenido en la próxima conversión.

2) quisiera saber si hasta ahora la rutina anterior es correcta para medir y digitalizar una señal analógica.

No veo nada incorrecto.Asegurate de configurar bien las entradas/salidas. Tal vez deberías ajustar el duty cycle a 1/64 para lecturas un poco mas estables. Dependerá de tu aplicación eso.

3) Es correcto lo siguiente para visualizar la parte baja en el Puerto C? La idea es poner unos LEDs que estén apagados o prendidos (representando unos y ceros) para leer el dato.[/color]

Si. Es correcto siempre y cuando todos los pines del PORTC estén configurados como salidas.

4) Ahora mi gran problema. Solo quiero visualizar solo los dos bits menos significativos en dos salidas del Puerto B (utilizando unos LEDs) pero la verdad no tengo ni idea como hacerlo.

¿Menos significativos?...

Esto muestra los dos bits MENOS significativos de la conversion en los pines RB0 y RB1.

      movlw    0xFC           ;cargo W= b'11111100'
                   andwf     PORTB,F      ;la AND con W fuerza a los bits RB0 y RB1 a valer cero.
                   bsf         STATUS,RP0
                   MOVF   ADRESL,0    ;copio valor de ADRESL en W
                   bcf        STATUS,RP0
                   andlw   0x03             ;me quedo solo con los dos bits de menor peso y
                   iorwf     PORTB,F       ;la IOR se encargara de setear los bits correspondientes en el PORTB.

Suerte.
« Última modificación: 07 de Marzo de 2007, 13:46:44 por BrunoF »
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado Juanp

  • PIC10
  • *
  • Mensajes: 13
Re: Pequeñas dudas existenciales
« Respuesta #2 en: 07 de Marzo de 2007, 20:43:18 »
Muchas Gracias BrunoF!! y perdón por no aclarar que los bits menos significativos a los que me refería eran solamente los del ADRESH. Obviamente la falta de aclaración pudo dar lugar a pensar que podría referirme al dato completo ADRESH_ADRESL. Pero bueno, me entendiste perfectamente a que apuntaba la pregunta. Saludos y espero con el tiempo poder ser yo quien pueda dar una mano acá.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Pequeñas dudas existenciales
« Respuesta #3 en: 07 de Marzo de 2007, 21:19:38 »
Ah! Ok. Si. Me resultaba raro lo que pedias, pero era posible por lo que asumi que te referias a los 2 bits menos significativos de toda la conversion :D

Para los dos bits del ADRESH es mas facil:

                   movlw    0xFC           ;cargo W= b'11111100'
                   andwf     PORTB,F      ;la AND con W fuerza a los bits RB0 y RB1 a valer cero.
                   ;bsf         STATUS,RP0 No se usa porque ADRESH esta en BANK0
                   MOVF   ADRESH,0    ;copio valor de ADRESL en W
                   ;bcf        STATUS,RP0
                   ;andlw   0x03             ;no se necesita xq la conversion ya pone en cero los otros 6 bits del registro.
                   iorwf     PORTB,F       ;la IOR se encargara de setear los bits correspondientes en el PORTB.


Quedando:

                   movlw    0xFC           ;cargo W= b'11111100'
                   andwf     PORTB,F      ;la AND con W fuerza a los bits RB0 y RB1 a valer cero.
                   MOVF   ADRESH,0    ;copio valor de ADRESL en W
                   iorwf     PORTB,F       ;la IOR se encargara de setear los bits correspondientes en el PORTB.

Suerte!
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.


 

anything