Autor Tema: PIC SIMULATOR IDE: ADC con 12F675  (Leído 5144 veces)

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

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
PIC SIMULATOR IDE: ADC con 12F675
« 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
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: PIC SIMULATOR IDE: ADC con 12F675
« Respuesta #1 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
« Última modificación: 13 de Enero de 2008, 17:43:38 por AKENAFAB »

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC SIMULATOR IDE: ADC con 12F675
« Respuesta #2 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


« Última modificación: 13 de Enero de 2008, 22:02:27 por dogflu66 »
Saludos desde Granada, España.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: PIC SIMULATOR IDE: ADC con 12F675
« Respuesta #3 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!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado poseidon20

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 762
Re: PIC SIMULATOR IDE: ADC con 12F675
« Respuesta #4 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:

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: PIC SIMULATOR IDE: ADC con 12F675
« Respuesta #5 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!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert


 

anything