Autor Tema: Problema con Adin de Proton  (Leído 4241 veces)

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

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2062
Problema con Adin de Proton
« en: 22 de Octubre de 2007, 11:15:55 »
Que tal amigos!
Quisiera su ayuda con respecto al programa que coloco abajo el cual fue sacado del manual de proton.
Dicho programa me muestra 0.00 en la pantalla de la lcd que trae el simulador de proton no entiendo porque?  :8}

            Device = 16F877
            XTAL = 4
            LCD_DTPIN = PORTD.4   
            LCD_RSPIN = PORTE.0
            LCD_ENPIN = PORTE.1
            LCD_INTERFACE = 4   ' 4-bit Interface
            LCD_LINES = 2
         
       LCD_TYPE = 0
            LCD_COMMANDUS = 2000
            LCD_DATAUS = 50
           
            Declare ADIN_RES 10       ' 10-bit result required
            Declare ADIN_TAD FRC      ' RC OSC chosen
            Declare ADIN_STIME 50
           
            Dim RAW As Word
            Dim VOLTS As Float
            Symbol QUANTA = 5.0 / 1024
            Cls
            TRISA = %00000001         ' Configure AN0 (PORTA.0) as an input
            ADCON1 = %10000100        ' Set analogue input on PORTA.0
           
            DelayMS 400
         
         
LOOP:
            RAW = ADIn 0
            VOLTS = RAW * QUANTA
            Print At 1,1,DEC2 VOLTS,"V    "

            GoTo LOOP
           
           
            End
           


Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Problema con Adin de Proton
« Respuesta #1 en: 22 de Octubre de 2007, 11:46:42 »
Hola:


Me sucede lo mismo, y da una advertencia diciendo que posiblemente no se lo puede simular para la frecuencia que se está utilizando, lo has intentado probar en la realidad?

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2062
Re: Problema con Adin de Proton
« Respuesta #2 en: 22 de Octubre de 2007, 11:54:22 »
Que tal amigo lordlafebre!
Me haz aliviado en algo con tu respuesta, pues ya comensaba a pensar que mi proton se habia jodid...  :lol:

He probado el circuito en fisico y no furula ( no funciona) tampoco, asi que al pareser es un problema del proton, eso creo.
Ya que de dos que lo hemos probado no funciona  :?

El ejemplo que coloque lo simule con el proteus que trae el proton y no me da esa advertencia, no obstante no me funciona ni simulado ni montado en fisico con un pic16f876A.

Sigo esperando instrucciones  :mrgreen:


Desconectado Marioguillote

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1926
    • Servisystem
Re: Problema con Adin de Proton
« Respuesta #3 en: 22 de Octubre de 2007, 12:16:11 »
Hola Ralf2, Hola Gio !  :)

En la línea

Print At 1,1,DEC2 VOLTS,"V    "

Quitále el DEC2; que te quede la variable VOLTS solamente; y dejá que te muestre todos los decimales del float a ver si aparece algo más allá.
No olvidemos que 5/1024, dá 0,0048.... tal vez por eso te muestra 0.00.

Saludos.
Mario


Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2062
Re: Problema con Adin de Proton
« Respuesta #4 en: 22 de Octubre de 2007, 12:27:45 »
Que tal marioguillote!

Mira dividi 5/15 y le quite el dec y no fifa (no funciona)
Le coloque el dec y me muestra 0.000


Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Problema con Adin de Proton
« Respuesta #5 en: 22 de Octubre de 2007, 12:32:32 »
Hola:

Mario en DEC2 en este caso te indica cuantos numeros luego de la coma tomar.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Problema con Adin de Proton
« Respuesta #6 en: 22 de Octubre de 2007, 12:37:07 »
Hola:

RALF2, prueba con esto:

'PIC a utilizar
Device 16F870
'Frecuencia
XTAL 4
Declare LCD_TYPE 0
Declare LCD_DTPIN PORTB.0 
Declare LCD_ENPIN PORTB.4
Declare LCD_RSPIN PORTB.5
Declare LCD_INTERFACE 4
Declare LCD_LINES 2 
'declaración del ADC
Declare ADIN_RES 10      ' 8-bits
Declare ADIN_TAD FRC    ' RC OSC 
Declare ADIN_STIME 50   ' muestreo 50us
                                                         
Dim VAR1 As Word

TRISA = %00000001       ' AN0 (PORTA.0) como entrada
ADCON1 = %10000000      ' PORTA.0 entrada analógica


Cls
inicio:
    VAR1 = ADIn 0       'VAR1 almacena el valor de la conversión
    Print At 1,1,Dec VAR1

    DelayMS 50
    GoTo inicio
End   

No es problema del ADIN, porque eso lo tengo funcionando, en la simulación y en la realidad, de pronto el problema está en las operaciones.

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2062
Re: Problema con Adin de Proton
« Respuesta #7 en: 22 de Octubre de 2007, 12:44:22 »
Que tal lordlafebre!
El programa que posteaste funciona bien el problema esta con las variables de tipo flotante ese es el problema en si.

El adin trabaja bien pero cuando uno realiza las operaciones en punto flotante alli es donde se complica todo!

Lo que me llama la atencion es que siendo un programa que esta en el libro del proton deberia trabajar bien y no entiendo porque.

El programa que postee es un voltimetro, pero no quiere trabajar.   :(

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Problema con Adin de Proton
« Respuesta #8 en: 22 de Octubre de 2007, 12:49:39 »
Hola:

en realidad la división es la que genera ese "error", si divides manualmete Symbol QUANTA = 5.0 / 1024 nos da algo así como:
0.00488 si multiplicas el valor leido del ADC por eso tendrás la respuesta correspondiente.

'PIC a utilizar
Device 16F870
'Frecuencia
XTAL 4
Declare LCD_TYPE 0
Declare LCD_DTPIN PORTB.0 
Declare LCD_ENPIN PORTB.4
Declare LCD_RSPIN PORTB.5
Declare LCD_INTERFACE 4
Declare LCD_LINES 2 
'declaración del ADC
Declare ADIN_RES 10      ' 8-bits
Declare ADIN_TAD FRC    ' RC OSC 
Declare ADIN_STIME 50   ' muestreo 50us
                                                         
Dim VAR1 As Word
Dim VOLTS As Float
Dim temp As Float

TRISA = %00000001       ' AN0 (PORTA.0) como entrada
ADCON1 = %10000000      ' PORTA.0 entrada analógica


Cls
inicio:

    VAR1 = ADIn 0
    VOLTS = VAR1 * 0.00488
    Print At 1,1, Dec VOLTS,"V    "

    DelayMS 50
    GoTo inicio
End

Está de revisar esto del punto flotante, mas que nada las divisiones, de pronto genera algun problema para pics de la serie 16.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Problema con Adin de Proton
« Respuesta #9 en: 22 de Octubre de 2007, 12:53:53 »
Que lío, no es la serie 16, sucede lo mismo con un 18F452  :?, realizando la  división manualmente como en el caso anterior funciona bien.

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2062
Re: Problema con Adin de Proton
« Respuesta #10 en: 22 de Octubre de 2007, 13:07:18 »
Ok ese truco si funciona  :mrgreen:
Pero, deberia funcionar de la forma que coloque inicialmente, segun el manual  :mrgreen:

Pero no es asi

Conclucion:
El proton tiene algunos problemitas respecto al manejo de variables tipo float.

Otra forma de resolver el problema: crea una variable tipo byte por ejemplo: dim var1 as byte.
haces var1 = 5.
luego creas una variable tipo float, por ejemplo dim flt1 as float.
luego flt1 = var1/1024
y finalmente volts = raw * flt1

Y funciona   :-/

Gracias por su ayuda!

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Problema con Adin de Proton
« Respuesta #11 en: 22 de Octubre de 2007, 13:18:18 »
Hola:

Hay que revisar el tema de la división, a ver si podemos encontrar algo sobre eso.

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2062
Re: Problema con Adin de Proton
« Respuesta #12 en: 22 de Octubre de 2007, 13:35:46 »
Estoy trabajando en eso!
Te adelanto para que la division con decimales se lleve acabo bien sea el numerador y/o denominador tienen que ser una variable byte, word, dword o float.

Si divimos dos numeros con decimales o sin ellos no funciona   :mrgreen:


Saludos

Desconectado electronando

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 427
Re: Problema con Adin de Proton
« Respuesta #13 en: 25 de Octubre de 2007, 01:27:37 »
prueba quitamdole esto

Declare ADIN_STIME 50   ' muestreo 50us

puede q deba demorar mas y por eso no funcione

y juega cambiando esto :

ADCON1 = %10000000

por ADCON1 = %00000000

a veces sucede por esto  :mrgreen:

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2062
Re: Problema con Adin de Proton
« Respuesta #14 en: 25 de Octubre de 2007, 09:58:00 »
Hola electronando!
Gracias por la ayuda!

Pero despues de varios dias de revizar y consultar con varios amigos, es conveniente que haga la siguiente reflexion  :)

Todo lo que coloque referente a que el proton presentaba problemas con la division no es correcto, asi que les agradesco que obvien los comentarios que coloque arriba, para asi evitar confuciones.

Ayer cargue el programa en una PC de un amigo y corri el programa que postee, tal cual, y este me funciono perfecto, sin tener que modificar nada!

Donde estaba el problema entonces, la respuesta es en el WINDOWS, increible pero cierto alli estaba el problema, por lo que hoy me dedicare a reemplazarlo  :(

Espero con esto aclarar el paronama a todos los que poseen el proton!

Saludos

 



 

anything