TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: aitopes en 13 de Enero de 2008, 16:58:43

Título: PIC SIMULATOR IDE: ADC con 12F675
Publicado por: aitopes en 13 de Enero de 2008, 16:58:43
Hola amigos!

Estoy intentando, por primera vez, usar el ADC del 12F675.

Tengo un potenciometro con su cursor conectado a AN3, y prentendo que las salidas GP0, GP1 y GP2 "roten" a una velocidad determinada por el valor leido en el ADC. Pero...no me funciona. ¿Me ayudan a buscar el error?

Este es el codigo que estoy escribiendo:
Citar
Symbol r = GPIO.2
Symbol g = GPIO.1
Symbol y = GPIO.0
Symbol ad_action = ADCON0.GO_DONE

TRISIO = %111000  'GPIO 0,1,2, salidas y 3,4,5 entradas
'CMCON = 7  'comparadores apagados
ANSEL = %00111000
ADCON0 = %00001111 
High ADCON0.ADON

'Define osc 4
'Define adc_bits 8
'Define ADC_CLOCK 3
'Define ADC_SAMPLEUS 50

Dim tiempo As Byte
GPIO = %110000  'todas las salidas a 0
WaitMs 500

rotacion:
   Adcin 3, tiempo
   High ad_action
   While ad_action
   Wend

   r = 1
   g = 0
   y = 0
   WaitMs tiempo
   'WaitMs 100
   r = 0
   g = 1
   y = 0
   WaitMs tiempo
   'WaitMs 100
   r = 0
   g = 0
   y = 1
   WaitMs tiempo
   'WaitMs 100
   Goto rotacion
End
Título: Re: PIC SIMULATOR IDE: ADC con 12F675
Publicado por: AKENAFAB en 13 de Enero de 2008, 17:41:20
Hola aitopes!!

Como salidas vas a ocupar GP<2:0>

Pero no has desactivado el comparador cuyas entradas estan multiplexadas a gp0 pg1 y gp2 respectivamente.

Citar
TRISIO = %111000  'GPIO 0,1,2, salidas y 3,4,5 entradas
'CMCON = 7  'comparadores apagados
ANSEL = %00111000

Lo tienes comentado.



La demás configuración la veo bien, tomas Vref como VDD, canal 3.

Yo no se de basic o el lenguje que uses.

Pero por ahi veo que esta la onda.

Espero te sea de ayuda.

Atentamente
  Akenafab
Título: Re: PIC SIMULATOR IDE: ADC con 12F675
Publicado por: dogflu66 en 13 de Enero de 2008, 21:37:56
Con solo quitar estas tres lineas ya te funciona en el simulador:
   High ad_action
   While ad_action
   Wend

Adcin ya hace el control de activacion, puesta en marcha, control del bit de
terminacion de conversion y programacion del ADC a 10bit.

Si quieres ver como funcina esta funcion e incluso si quieres hacer tu propia
rutina en el PSI para poder trabajar a 8Bit, puedes verlo desde aqui en adelante
con todo lujo de detalles:

    http://www.todopic.com.ar/foros/index.php?topic=14917.msg126488#msg126488
    http://www.todopic.com.ar/foros/index.php?topic=14917.msg126721#msg126721
    http://www.todopic.com.ar/foros/index.php?topic=14917.msg126726#msg126726

Y los comparadores siempre los deshabilito por lo que no se si en la realidad podran afectar.

    CMCON = 0x07  'comparator off
    VRCON = 0x00  'vref off

Esta configuracion nunca la he utilizado asi que no se que resultado puede dar en la realidad.

   bit 6-4 ADCS<2:0>: A/D Conversion Clock Select bits
   000 = FOSC/2
   001 = FOSC/8
   010 = FOSC/32
   x11 = FRC (clock derived from a dedicated internal oscillator = 500 kHz max)
   100 = FOSC/4
   101 = FOSC/16
   110 = FOSC/64


Título: Re: PIC SIMULATOR IDE: ADC con 12F675
Publicado por: aitopes en 14 de Enero de 2008, 11:35:05
Hola Amigos!

Gracias por su ayuda.
Este código ya funciona perfectamente en el simulador:

Citar
Symbol r = GPIO.2
Symbol g = GPIO.1
Symbol y = GPIO.0
Symbol ad_action = ADCON0.GO_DONE

TRISIO = %111000  'GPIO 1,2,0,5 salidas y 4, 3 entradas
CMCON = 0x07  'comparator off
VRCON = 0x00  'vref off
ANSEL = %00111000  'GPIO.4 A/D IN W/Frc
ADCON0 = %00001111  'TURN ON VREF, SELECT CHANNEL 0, RIGHT JUSTIFY RESULT
High ADCON0.ADON

Dim tiempo As Word
GPIO = %110000  'todas las salidas a 0

rotacion:
   Adcin 3, tiempo

   r = 1
   g = 0
   y = 0
   WaitMs tiempo
   'WaitMs 100
   r = 0
   g = 1
   y = 0
   WaitMs tiempo
   'WaitMs 100
   r = 0
   g = 0
   y = 1
   WaitMs tiempo
   'WaitMs 100
Goto rotacion
End

Ahora, a jugar con el hard! :)

Saludos!
Título: Re: PIC SIMULATOR IDE: ADC con 12F675
Publicado por: poseidon20 en 14 de Enero de 2008, 15:42:39
Hola Amigos!

Gracias por su ayuda.
Este código ya funciona perfectamente en el simulador:

.....
Ahora, a jugar con el hard! :)

Saludos!

Muy importante jugar con el hard, te lo digo ya que recien me paso que por confirame mucho en el proteus, cuando lo pase al hard no funcionaba como debia ser y el problema era que el proteus permitia hacer algo que en si el PIC no podia hacer en la vida real  :5] :5] :5] :5] :5] :5], pero ahora ya esta al 99.9% solo estoy haciendo retoques. Hay proteus, proteus, proteus ....... y ahora a sacado el sp3 para el 7.2, que nuevos bug habran traido  :mrgreen:
Título: Re: PIC SIMULATOR IDE: ADC con 12F675
Publicado por: aitopes en 14 de Enero de 2008, 15:49:01
Hola!
Yo no uso demasiado los simuladores. Pero en este caso, tuve la "suerte" de equivocarme en el soft....y en el hard. Conecte el emisor de los PNP de salida a 12V en lugar de a 5V, y por eso no funcionaban. Convencido de que el hard estaba bien, me volvi loco con el soft, hasta que con su ayuda me sacaron del pozo. :)

Ahora todo anda como debe.

Gracias!