uControl
Agosto 20, 2014, 03:30:15 *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
 
   Inicio   Ayuda Buscar Ingresar Registrarse  

La gente de Niple nos ofrece un descuento especial para usuarios de uControl.
Entérate de como puedes aprovechar esta oferta haciendo click aqui.

Súmate, y ayuda a uControl con tu participación en esta interesante oportunidad que nos oferece Niple.

Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Como configurar de manera correcta el ADC de un PIC18 en CCS???  (Leído 2776 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Mando31
Amigo de uControl
PIC12F
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 336



WWW
« : Noviembre 24, 2010, 03:03:10 »

Hola compañeros foreros, mi duda radica en como configurar el ADC en un PIC18, ya que se que se puede selecionar el timepo de muestreo y en la ayuda de CCS solo indica que si se usa el clock interno esta entre 2us y 6us, pero como puedo seleccionar ese parametro en CCS, se como se hace en C18 pero en CCS?

Alguin sabe?

Ahora tambien me encontrado en la simulacion con proteus un par de mensajes que indican que cambio muy rapido de canal o que no dejo terminar la conversion, cosa que se me hace rara ya que uso la funcion adc_done que trae el ccs para saber si termino la conversion leer el valor y esperar a la siguiente conversion, es por lo que me queda esa duda.

Cualquier ayuda es bien recibida.
Gracias y que tengan un excelente dia.
En línea

La ingenieria mecatrónica es mi pasión, mi motor, mi vida.
My website: Todo Para Mecatronica, Tutoriales, Cursos y +
Suky
**----- ^^ ------**
Moderador
dsPIC
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 5434


Con Qt...


WWW
« Respuesta #1 : Noviembre 24, 2010, 03:09:00 »

Buscando en la ayuda:
Citar
setup_adc(mode)

--------------------------------------------------------------------------------
Syntax:
 setup_adc (mode);

setup_adc2(mode);
 
Parameters:
 mode- Analog to digital mode. The valid options vary depending on the device. See the devices .h file for all options. Some typical options include:

·  ADC_OFF

·  ADC_CLOCK_INTERNAL

·   ADC_CLOCK_DIV_32

 

Y para la lectura:
Citar
read_adc( )

--------------------------------------------------------------------------------
Syntax:
 value = read_adc ([mode])

 
 
Parameters:
 mode is an optional parameter. If used the values  may be:

ADC_START_AND_READ (continually takes readings, this is the default)

ADC_START_ONLY (starts the conversion and returns)

ADC_READ_ONLY (reads last conversion result)
 

O sea que si usas value=read_adc(); Comienza la lectura, y cuando termina transfiere el valor a value. Con respecto al cambio de canal, si no se espera por hardware se debe esperar mínimo 5 us y luego realizar la lectura del canal analógico.


Saludos!

En línea

Mando31
Amigo de uControl
PIC12F
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 336



WWW
« Respuesta #2 : Noviembre 24, 2010, 04:47:42 »

Ok, ahora como lograr la espera por medio del hardware en CCS, lo he buscado pero lo encuentro ni el .h del micro, ya que quisiera ahorrarme el delay_us(5), se que se puede realizar por ejemplo en C18 se como hacerlo pero en CCS no doy con la forma, otra seria realizar la configuracion del ADC con ASM pero deberia de haber alguna declaracion, para poder conseguir la espera por medio de hardware, o sera que los desarrolladores de CCS no lo implementaron?
Que flojos jajaja.  Tongue

Bueno a seguir viendo como lograr la espera por hardware.
En línea

La ingenieria mecatrónica es mi pasión, mi motor, mi vida.
My website: Todo Para Mecatronica, Tutoriales, Cursos y +
Suky
**----- ^^ ------**
Moderador
dsPIC
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 5434


Con Qt...


WWW
« Respuesta #3 : Noviembre 24, 2010, 08:43:06 »

Me parece que para algunos micros no lo implementan  Tongue Podrías declarar con #byte los registros ADCON que se utilizan y configurarlos como se haría en C18 o ASM.


Saludos!
En línea

Mando31
Amigo de uControl
PIC12F
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 336



WWW
« Respuesta #4 : Noviembre 25, 2010, 01:25:34 »

Pues bueno en efecto lo realice como comenta SUKY, voy a explicar como lograr tener la opcion de TAD en CCS.

Primero debemos definir el registro para esto usamos la directiva #byte de la siguiente manera: #byte ADCON2 = 0xFC0 con eso le estamos dando el estacio de trabajo para el byte mencionado, posteriormente usamos la directiva #bit, de esta manera podemos exceder a los bits individuales del byte definido, de la siguiente manera #bit ACQT0 = ADCON2.3, donde ACQT0 es el nombre del bit, ADCON2 el nombre del registro (byte) y el numero después del punto es el bit al que uqeremos acceder, una ves que tenemos todos los bits que nos interesan declarados, los podemos usar ya sea poniendo en el codigo ACQT0 = 1; o bien crear una funcion y solo pasarle los parametros por ejemplo TAD(1,0,1) con esa configuracion en los bits del registro estamos indicando 12TAD.

Espero les sirva para futuras dudas o para aquellos que quieran implementar los TAD en su codigo.
En línea

La ingenieria mecatrónica es mi pasión, mi motor, mi vida.
My website: Todo Para Mecatronica, Tutoriales, Cursos y +

La gente de Niple nos ofrece un descuento especial para usuarios de uControl.
Entérate de como puedes aprovechar esta oferta haciendo click aqui.

Súmate, y ayuda a uControl con tu participación en esta interesante oportunidad que nos oferece Niple.

Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  


La gente de Niple nos ofrece un descuento especial para usuarios de uControl.
Entérate de como puedes aprovechar esta oferta haciendo click aqui.

Súmate, y ayuda a uControl con tu participación en esta interesante oportunidad que nos oferece Niple.

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.19 | SMF © 2011, Simple Machines
SMFAds for Free Forums
XHTML 1.0 válido! CSS válido!
Página creada en 0.086 segundos con 29 consultas. (Pretty URLs adds 0.007s, 3q)
loggkey