Autor Tema: Problema 12F1822  (Leído 8462 veces)

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

Desconectado f-traxx

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 116
Re: Problema 12F1822
« Respuesta #15 en: 30 de Marzo de 2011, 04:12:59 »
Muchisimas gracias por la respuesta, estoy seguro que es eso... me puedes decir como solucionaste porfavor... yo tambien tengo la versión 4.114 y estoy con el mismo problema, necesitaba una conversión a/d de 8 bits y como vi que eso no funcionaba, probé lo del led parpadeando... pero tampoco me funciona... me puedes ayudar barral????

Desconectado barral

  • PIC10
  • *
  • Mensajes: 37
Re: Problema 12F1822
« Respuesta #16 en: 30 de Marzo de 2011, 08:06:22 »
Pues ahora mismo no tengo el programa por aquí, pero bueno, simplemente lo hice como si trabajara en assembler: declaré los registros, los configuré a mano, y después la marcha del A/D y la espera al final de la conversión también era "a mano" (no usaba la interrupción). En cuanto a delay_ms, como no tenía problemas ni de tiempo ni de espacio, aunque no me gustó nada la solución y es muy poco "elegante", simplemente hacía bucles de retardos de 500us. Era un programa sencillo y tampoco me calenté demasiado la cabeza.

Si tienes alguna duda me lo dices y cuando pueda me traeré el programa.

Saludos

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: Problema 12F1822
« Respuesta #17 en: 30 de Marzo de 2011, 09:00:34 »
... Tu lo probaste en una protoboard bmb??

Saludos

Hola f-traxx, estuve buscando el PIC para hacer una prueba física y parece que no se consigue en mi pais.  Lo único que pude hacer fué una simulación con el Mplab SIM y funciona muy bien incluyendo la instrucción delay_ms().  Pensaría que se trata de un problema en el circuito físico, pero dices que te ha funcionado con códigos generados en otros compiladores.  Creo que la prueba que te propone barral declarando los registros que necesites y haciendo una función que te reemplace a delay_ms() es buena idea.  De hecho y si te fijas en el foro de CCS, esta es la solución más común cuando el compilador presenta bugs.

Saludos!

Desconectado f-traxx

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 116
Re: Problema 12F1822
« Respuesta #18 en: 30 de Marzo de 2011, 12:27:07 »
No tengo ni idea de asm, me podrias pasar tu trozo de codigo donde tienes lo del conversor A/D, o algo para que pueda probar yo mi PIC12f1822, muchas gracias a todos!!

Desconectado barral

  • PIC10
  • *
  • Mensajes: 37
Re: Problema 12F1822
« Respuesta #19 en: 01 de Abril de 2011, 03:37:04 »
Por ejemplo, definición de registros:
Código: [Seleccionar]
#byte OPTION_REG=0x95
#bit WPUEN=OPTION_REG.7
#byte WPUA=0x20C //habilita PULLUPS porta
#byte WPUC=0x20E //habilita PULLUPS portc
#byte CPSCON0=0x01E //deshabilita capacitive touch
#byte SRCON0=0x11A //deshabilita SR LATCH
#byte DACCON0=0x118 //deshabilita DAC
#byte FVRCON=0x117 //habilita ref tension interna, deshabilita indicador de temperatura
#byte ADCON0=0x9D
#bit GO_DONE=ADCON0.1
#byte ADCON1=0x9E
#byte ADRESL=0x9B
#byte ADRESH=0x9C
#byte ANSELA=0x18C
#byte ANSELC=0x18E

Configuración de algunos periféricos
Código: [Seleccionar]
WPUEN=0; //habilito poder seleccionar independientemente las pull-ups
WPUA=0b000100; //habilito PULL-UPS puerto A
WPUC=0b011000; //habilito PULL-UPS puerto C
CPSCON0=0x00; //deshabilita capacitive touch
SRCON0=0x00; //deshabilita SR LATCH
DACCON0=0x00; //deshabilita DAC
FVRCON=0b11000011; //habilita ref tension interna, deshabilita indicador de temperatura

ADCON0=0b00011001; //canal 6, AD habilitado
ADCON1=0b01000011; //justificado derecha, Fosc/4 = 1us, FVR ON
ADRESH=0;
ANSELC=0b00000100; //sólo RC2/AN6 como AD
ANSELA=0b00000000;

La función para leer el A/D (en este caso solamente se lee un canal que se configura al principio, se podría mejorar muuuucho)
Código: [Seleccionar]
void captura_valor_ad()
{
GO_DONE=1;
do
{}
while(GO_DONE==1);
captura_valor=ADRESH;

}

El retardo ahora que lo veo lo hice mediante la interrupción del timer, donde tengo la base de tiempos. Pero se pueden hacer tantos delay_us(500) como haga falta. Espero que te sea útil.

Saludos

NOTA: es un programa medio cutrillo... y algunas cosas no están hechas de la forma más elegante precisamente

Desconectado f-traxx

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 116
Re: Problema 12F1822
« Respuesta #20 en: 01 de Abril de 2011, 04:07:36 »
OK barral muchas gracias, quando comentaste lo de hacerlo como trabajar en asm. creia que decias de hacer algo en programacion asm. muchas gracias por los ejemplos, alguna vez ya necesité tocar los registros manualmente, gracias por todo, quando tenga un rato lo probaré y comento que tal.

Saludos

F-traxx

Desconectado f-traxx

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 116
Re: Problema 12F1822
« Respuesta #21 en: 07 de Abril de 2011, 03:07:36 »
Holam al final no lo he podido solucionar con el 12F1822, me daba problemas por todos los lados, y he hecho mi programa con un 12f683, gracias por las ayudas recibidas.

Saludos f-traxx