Autor Tema: conversor a 10 bit  (Leído 7243 veces)

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

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
conversor a 10 bit
« en: 25 de Septiembre de 2008, 10:54:15 »
Hola grupo, me pueden indicar como configurar el AD a 10 bit,
int16 resultado;
resultado=read_adc();
si lo configuro a 8 bit me entrega el valor correcto pero si lo configuro a 10 bit
me entrega solo los 2 bit superiores

gracias

Desconectado Micro23

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 226
Re: conversor a 10 bit
« Respuesta #1 en: 25 de Septiembre de 2008, 11:10:01 »
Hola Diego, podrias poner el codigo aca asi veo cual puede ser el problema.
Saludos
El pesimista se queja del viento
El optimista espera que cambie
El realista ajusta las velas

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: conversor a 10 bit
« Respuesta #2 en: 25 de Septiembre de 2008, 11:44:00 »
micro23, gracias por responderme

#byte   adcon0=0x1f  //registros de configuracion
#byte   adcon1=0x9f
int16 valor_ad;

void conversion_ad()
{
adcon1=0x8e; //configuracion de del adcon con justificacion a la derecha

set_adc_channel(0);
delay_us(10);
valor_ad = read_adc(); //en valor_ad solo aparece el dato del adresh ya sea justificado a la izquierda o derecha
}

gracias

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: conversor a 10 bit
« Respuesta #3 en: 25 de Septiembre de 2008, 13:01:58 »
micro32, probé de esta forma y me funciona

{
bit_set(ini_ad);
while(ini_ad==1);
valor_ad=((int16)adresh*256)+adresl;
}
pero quisiera que al ejecutar la sentencia "valor_ad = read_adc();" me trajera de una sola vez los 10 bit

gracias

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: conversor a 10 bit
« Respuesta #4 en: 25 de Septiembre de 2008, 13:13:38 »
Hola.

Eso lo puedes colocar al inicio de tu programa de la siguiente manera:

Código: C#
  1. #include<18F458.h>
  2. #fuses XT,NOLVP
  3. #device adc=10//10: Para conversiones a 10 bits,  8: para conversiones a 8 bits

Saludos
El papel lo aguanta todo

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: conversor a 10 bit
« Respuesta #5 en: 25 de Septiembre de 2008, 14:19:43 »
#device adc=10
Hola MLO, cuando escribo esta sentencia y compilo me sale el siguiente error
CAN NOT CHANGE DEVICE TYPE THIS FAR INTO THE CODE

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: conversor a 10 bit
« Respuesta #6 en: 25 de Septiembre de 2008, 14:35:42 »
Hola.

Que microcontrolador estas usando?

Saludos
El papel lo aguanta todo

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: conversor a 10 bit
« Respuesta #7 en: 25 de Septiembre de 2008, 15:21:08 »
Debes colocar el "#device adc=10" justo después de la linea "#include<18F458.h>", quedaría asi


Código: CSS
  1. #include<18F458.h>
  2. #device adc=10//10: Para conversiones a 10 bits,  8: para conversiones a 8 bits
  3. #fuses .......
  4. .
  5. .
  6. .
  7. .
  8. .
  9. .


de esta manera no te dará error


Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: conversor a 10 bit
« Respuesta #8 en: 25 de Septiembre de 2008, 16:09:26 »
//El codigo está así
#include <16c73a.h>
#device ADC=10
#include <Conversor A-D.h>
#fuses   nowdt, xt

//Sigue presentando el error, algo que observo es que en la carpeta PICC\DEVICE
//no aparece el 16f873a que es el que estoy utilizando, inmediatamente me presenta
//el 16c73a; sin embargo escribo el #include 16c73a y aparece el mismo error
//gracias

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: conversor a 10 bit
« Respuesta #9 en: 25 de Septiembre de 2008, 16:43:29 »
Debes colocar el "#device adc=10" justo después de la linea "#include<18F458.h>"
de esta manera no te dará error

No influye la posicion de la directiva #device adc=10 antes o despues de los #fuses.

Respecto al PIC, estas seguro que si dispone de conversor a 10 bits? mira que el 16C73B tiene el ADC de 5 y 8 bits como maximo

Saludos
El papel lo aguanta todo

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: conversor a 10 bit
« Respuesta #10 en: 25 de Septiembre de 2008, 17:00:49 »
Disculpen, creo que no fui claro, es que si colocas #device adc=10 luego de #use o de la declaración de variables si da error. no luego de #Fuses. Si además ese pic no tiene conversor ad de 10 bits

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: conversor a 10 bit
« Respuesta #11 en: 25 de Septiembre de 2008, 17:12:09 »
ok

 :mrgreen: :mrgreen: :mrgreen:
El papel lo aguanta todo

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: conversor a 10 bit
« Respuesta #12 en: 25 de Septiembre de 2008, 17:50:13 »
MLO, Pablo, veo algo extaño en mi proyecto y es que cuando creo el proyecto wizard configuro el 16f873a; pero cuando PCW crea el proyecto incluye es el 16c73a y hasta donde tengo entendido este pic no tiene conversion a 10 bit, ?

gracias

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: conversor a 10 bit
« Respuesta #13 en: 25 de Septiembre de 2008, 18:37:59 »
Hola.

Efectivamente, ese micro no tiene conversor a 10 bits. Me parece extrano que te asigne otro PIC. Como haces para crear el proyecto? directamente desde el IDE del CCS o con el MPLAB IDE?

Si estas en el MPLAB IDE, verifica que el micro sea el correspondiente en Configure/Select Device.

Saludos
El papel lo aguanta todo

Desconectado Micro23

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 226
Re: conversor a 10 bit
« Respuesta #14 en: 25 de Septiembre de 2008, 18:50:07 »
Citar
#device adc=10
Hola MLO, cuando escribo esta sentencia y compilo me sale el siguiente error
CAN NOT CHANGE DEVICE TYPE THIS FAR INTO THE CODE

Hola Diego, vos generaste el proyecto con el wizard?, si es asi, el ccs te genera un archivo con el nombre de tu proyecto.h en donde aparecen el seteo de los fuses y el device adc=10 u 8, lo que te puede estar causando conflicto.

Saludos
« Última modificación: 25 de Septiembre de 2008, 18:54:23 por Micro23 »
El pesimista se queja del viento
El optimista espera que cambie
El realista ajusta las velas