Autor Tema: problema con conversion en proton  (Leído 1952 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado TREMENS

  • PIC16
  • ***
  • Mensajes: 125
problema con conversion en proton
« en: 30 de Noviembre de 2006, 08:44:44 »
estoy probando esta forma de adquisicin en el que uso resolucion de 10 bits y cuando lo muestro por LCD(tomando como entrada una contínua de 5 volt) me muestra 65472 (deberia mostrar 65535)
Probando con 2.5volt de entrada me muestra 32768(65536/2)

Qué pasará ?? probé poniendo inicio: antes y después del adcon1 y es lo mismo.
Donde comienza realmente el programa, digo, para hacer el bucle con el goto



device = 16f877
        XTAL= 4
       LCD_TYPE = 0                 ' Our LCD is the alphanumeric type
       
     LCD_DTPIN = PORTB.4         ' For Proteus Virtual Hardware Board LCD Data is PORTB.4,5,6,7
   
     LCD_RSPIN = PORTB.2        ' LCD RS pin
     LCD_ENPIN = PORTB.1        ' LCD EN pin
     LCD_INTERFACE = 4           ' We're using a 4-bit LCD interface
     LCD_LINES = 2               ' We're using a 2-Line LCD
   
       
   TRISB = 0                 ; PUERTO B SALIDA




DECLARE ADIN_RES 10       ' 10-bit result required
DECLARE ADIN_TAD 32_FOSC     ' 32Fosc OSC chosen
DECLARE ADIN_STIME 50     ' Allow 50us sample time
 DIM VAR1 as WORD
 TRISA = %00001011         ' Configure AN0,AN1 y AN3 (PORTA.0) as an input

 ADCON1 = %00000100         ' Set analogue input on PORTA.0,1,3 conversores
 inicio:
 VAR1 = ADIN 1 
 DELAYMS 500 
 CLS           'guarda cov del canal 0 en VAR1
  PRINT DEC VAR1          'guarda cov del canal 0 en VAR1
  goto inicio



Desconectado PAOLA09

  • Moderadores
  • PIC18
  • *****
  • Mensajes: 332
Re: problema con conversion en proton
« Respuesta #1 en: 30 de Noviembre de 2006, 15:53:20 »
hola TREMENS

lo que pasa es muy sencillo al ser una resolución de 10 bits tendriamos que el valor máximo a obtener debería ser 1024 como lo tienes justificado a la derecha indica que los bits menos significativos del valor total quedan en los bits mas significativos del adresl por lo cual se agregarian 6 ceros mas correspondientes a ese registro.

es decir el 1024 con los 6 ceros de mas seria lo mismo que tener el 65472, el valor intermedio de 1024 es 512 con los 6 ceros son los 32768 que ves. para que puedes tener el valor correcto de la conversión puedes hacer un desplazamiento a la derecha del resultado después de la adquisición.

                     VAR1 = ADIN 1
                     VADC = VAR1 >> 6

y mostrarias el valor de VADC.

espero que esto te solucione el problema.  :)

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: problema con conversion en proton
« Respuesta #2 en: 01 de Diciembre de 2006, 02:27:22 »
De hecho lo tiene justificado a la izquierda, no a la derecha.

Justifica a la derecha: ADCON1=10000100
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re: problema con conversion en proton
« Respuesta #3 en: 01 de Diciembre de 2006, 18:01:36 »
Que tal Mario,

Mira lo que te comenta Paola es correcto a excepcion de que efectivamante lo tienes justificado a la izquierda es por eso que obtienes esos valores, lo que debes hacer como lo mencionas despues, es jutificarlo a la derecha y no a la izquierda como lo tienes en tu codigo.

Saludos.

Elreypic.