Autor Tema: ADC dsPic30f3010  (Leído 5645 veces)

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

Desconectado fram_22

  • PIC18
  • ****
  • Mensajes: 316
ADC dsPic30f3010
« en: 20 de Noviembre de 2007, 01:18:34 »
Hola:

Estoy comenzando a trabajar con el 30f3010, y realize un pequeño programa para hechar a andar el ADC, lo compilé sin ningún problema pero cuando lo programé no hizo nada, se supone que este programa deberia leer las conversiones del ADC y mostrarlas en el puerto E.
He revisado el programa y en realidad no puedo ver el error, espero que alguien me pueda ayudar con eso, en fin aqui esta la rutina, cualquier ayuda será agradecida.

#include "p30f3010.h"

int prom=0;
void main(void){
ADCSSLbits.CSSL0=1;
ADPCFG=0xFFFE;
ADCON2bits.CHPS=1;
ADCON1bits.SSRC=0;
ADCON2bits.SMPI=4;
TRISB=0b111111110;
ADCON1bits.DONE=0;
IFS0bits.ADIF=0;
TRISE=0;
IEC0bits.ADIE = 0;
for(;;)
ADCON1bits.SAMP=0;
PORTE=prom;
}
void __attribute__((__interrupt__, __shadow__)) _ADCInterrupt(void)
{
int b;
b=ADCBUF0+ADCBUF1+ADCBUF2+ADCBUF3;
prom=b/4;
ADCON1bits.DONE=0;
IFS0bits.ADIF=0;
}

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: ADC dsPic30f3010
« Respuesta #1 en: 20 de Noviembre de 2007, 02:56:42 »
Es difícil encontrar el error porque como utilizas la escritura directa en los registros del micro y no has puesto comenarios obligaría a abrir la data para analizar línea a línea tu código.
¿Has probado a simular paso a paso en MPLAB?, creo que te serviría de bastante ayuda.

Desconectado fram_22

  • PIC18
  • ****
  • Mensajes: 316
Re: ADC dsPic30f3010
« Respuesta #2 en: 21 de Noviembre de 2007, 01:33:51 »
Hola:

Acabo de leer tu recomendación, sin embargo aun asi no logre ver el error, un amigo me recomendó utilizar una herramiente VisualInitializer, sin embargo me preocupa que limite mis opciones al trabajar con el DSPIC, has trabajado alguna vez con esta herramienta? Haré pruebas tanto con mi codigo original como con el VisualInitializer y en cuanto tenga resultados te informo.

gracias por tu tiempo

Fernando Ramírez

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: ADC dsPic30f3010
« Respuesta #3 en: 21 de Noviembre de 2007, 02:22:12 »
Buena opción lo del Visual Initializer. De hecho lo descubrí ayer en un seminario de Sagitron y me encantó.
Creo que escribiré un tutorial sobre el mismo.

Desconectado Renatox_

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 541
    • máquinas cnc
Re: ADC dsPic30f3010
« Respuesta #4 en: 22 de Noviembre de 2007, 00:00:45 »
Hola fram_22 veo que estás utilizando esta línea:

b=ADCBUF0+ADCBUF1+ADCBUF2+ADCBUF3;

Para ello necesitas realizar 4 secuencias de muestreo y retención. Por ejm usando los cuatro canales del ADC y muestreándolos simultaneamente, para luego convertirlos de uno en uno, y estas conversiones se colocan en los ADCBUFx. Esto lo hace el dspic automaticamente pero debes de configurar bien esto, revisa el datasheet bien ya que el ADC es un módulo complejo.

saludos;
control de movimiento

Desconectado fram_22

  • PIC18
  • ****
  • Mensajes: 316
Re: ADC dsPic30f3010
« Respuesta #5 en: 24 de Noviembre de 2007, 20:35:26 »
Hola:

Ya funcionó el programa del ADC, lo heché a andar utilizando Visual Initializer, es una herramiente bastante útil y simplifica muchisimo el trabajo, respecto a lo que sugirió Renatox, voy a checar bien eso porque no lo habia tomado en cuenta.

Saludos

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: ADC dsPic30f3010
« Respuesta #6 en: 25 de Noviembre de 2007, 02:30:44 »
¡Estupendo!. Ahora lo ideal sería que vieras dónde está la diferencia entre tu código original y el que te ha generado el VDI automáticamente para saber dónde estaba el error.

Desconectado Diego Gonzalez

  • PIC18
  • ****
  • Mensajes: 323
    • Visita mi web sobre electronica,fisica,mecanica y demas temas....
Re: ADC dsPic30f3010
« Respuesta #7 en: 14 de Diciembre de 2007, 14:41:13 »
Hola;

Esto no deberia estar a "1" para permitir la interrupcion?

IEC0bits.ADIE = 0;
Visita mi web sobre electronica,fisica,mecanica y demas temas....

http://sites.google.com/site/skygaps/Home

Desconectado umalrovi

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 158
    • Aplicaciones Electrónicas
Re: ADC dsPic30f3010
« Respuesta #8 en: 25 de Enero de 2008, 07:38:04 »
Buenas, me gustaría pasarme al los DSP es una cosa que tengo en mente. Me podréis explicar un poco que es eso del "Visual Initializer" supongo que será un programa que te genera un código  a través de un wizard. ¿Es FREE o de pago?

Venga un saludo y gracias!!
Aplicaciones Electrónicas
http://www.neoingenia.com/

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: ADC dsPic30f3010
« Respuesta #9 en: 25 de Enero de 2008, 08:02:13 »
Efectivamente, te genera un código que configura el PIC como tú desees y listo para empezar a programar tu aplicación.
No es una aplicación independiente, sino un módulo de MPLAB. La última versión del mismo está disponible para descargar en la web de Microchip.

Desconectado umalrovi

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 158
    • Aplicaciones Electrónicas
Re: ADC dsPic30f3010
« Respuesta #10 en: 26 de Enero de 2008, 08:26:46 »
Muchas gracias Diegopor tu respuesta. La idea mia es pasarme a los DSP ya que tengo que hacer alguna cosita cañera. Mi idea es programarlo en C con el CCS, estoy buscando info por el foro. Si tienes tu algún manual o programitas hechos en C ya sabes no está demás, yo sigo mirando cositas por aquí.

Saludos!!
Aplicaciones Electrónicas
http://www.neoingenia.com/


 

anything