Autor Tema: AYUDAA CON COVERSOR AD PIC 16F88  (Leído 2419 veces)

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

Desconectado mauryras

  • PIC10
  • *
  • Mensajes: 4
AYUDAA CON COVERSOR AD PIC 16F88
« en: 11 de Octubre de 2010, 18:40:54 »
HOLAS A TODOS .. MIREN TENGO UNA DUDA CON EL CONVERSO AD UTILIZANDO EL PIC 16F88 TRABAJO CON PICC, LO Q E SUCEDE ES COMO Q NO ME CONVIERTE NOSE POR QUE QUIERO VER LA CONVERSION EN UN LCD Y NO MUESTRA NADA NECESITO AYUDA : ESTE ES MI CODIGO:

#include <16F88.h>
#device adc=8

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES HS                       //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPUT                    //No Power Up Timer
#FUSES MCLR                     //Master Clear pin enabled
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection
#FUSES NOWRT                    //Program memory not write protected
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOPROTECT                //Code not protected from reading
#FUSES FCMEN                    //Fail-safe clock monitor enabled
#FUSES IESO                     //Internal External Switch Over mode enabled

#use delay(clock=20000000)
#define LCD_TYPE 2
#include <lcd.c>
#use fast_io(a)

int i;
char n;
void vista();
void convierte();
void main()
{
   
   //set_tris_a(1);//'1'-->entrada ; '0'--> salida
   lcd_init();
   vista();
   convierte();
   setup_adc_ports(sAN1|VSS_VDD);
   setup_adc(ADC_CLOCK_INTERNAL );
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_ccp1(CCP_OFF);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);

   //TODO: User Code

}
void vista(){
   lcd_putc("   Iniciando");
   delay_ms(1000);
   for(i=0;i<=3;i++) //me muestra los ....
  {
   lcd_gotoxy((13+i),1);
   lcd_putc(".");
   delay_ms(300);
  }
   delay_ms(2000);
   lcd_putc("\f");
   lcd_putc("  Sistemas Para\n");
   lcd_putc("  Control-2010");
   delay_ms(3000);
   lcd_putc("\f");
   lcd_putc("  Control Temp\n"); //Saca texto
   lcd_putc("    con LM 35");     //Saca texto
   delay_ms(3000);
   lcd_putc("\f");
}
void convierte(){
   set_adc_channel(0);
   delay_us(50);
   n=read_adc();
   lcd_gotoxy(1,1);
   printf(lcd_putc,"%u",n);
   delay_ms(2000);
}

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: AYUDAA CON COVERSOR AD PIC 16F88
« Respuesta #1 en: 11 de Octubre de 2010, 18:57:53 »
Hola! Estás realizando la conversión y visualización antes de inicializar todo  ;-) Prueba con :

Código: C
  1. #include <16F88.h>
  2. #device adc=8
  3.  
  4. #FUSES NOWDT                    //No Watch Dog Timer
  5. #FUSES HS                       //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
  6. #FUSES NOPUT                    //No Power Up Timer
  7. #FUSES MCLR                     //Master Clear pin enabled
  8. #FUSES NOBROWNOUT               //No brownout reset
  9. #FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
  10. #FUSES NOCPD                    //No EE protection
  11. #FUSES NOWRT                    //Program memory not write protected
  12. #FUSES NODEBUG                  //No Debug mode for ICD
  13. #FUSES NOPROTECT                //Code not protected from reading
  14. #FUSES FCMEN                    //Fail-safe clock monitor enabled
  15. #FUSES IESO                     //Internal External Switch Over mode enabled
  16.  
  17. #use delay(clock=20000000)
  18. #define LCD_TYPE 2
  19. #include <lcd.c>
  20. #use fast_io(a)
  21.  
  22. int i;
  23. char n;
  24. void vista();
  25. void convierte();
  26. void main()
  27. {
  28.    
  29.    //set_tris_a(1);//'1'-->entrada ; '0'--> salida
  30.    lcd_init();
  31.       setup_adc_ports(sAN1|VSS_VDD);
  32.    setup_adc(ADC_CLOCK_INTERNAL );
  33.    setup_spi(SPI_SS_DISABLED);
  34.    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
  35.    setup_timer_1(T1_DISABLED);
  36.    setup_timer_2(T2_DISABLED,0,1);
  37.    setup_ccp1(CCP_OFF);
  38.    setup_comparator(NC_NC_NC_NC);
  39.    setup_vref(FALSE);
  40.  
  41.    while(1){
  42.       vista();
  43.       convierte();
  44.    }
  45.  
  46. }
  47. void vista(){
  48.    lcd_putc("   Iniciando");
  49.    delay_ms(1000);
  50.    for(i=0;i<=3;i++) //me muestra los ....
  51.   {
  52.    lcd_gotoxy((13+i),1);
  53.    lcd_putc(".");
  54.    delay_ms(300);
  55.   }
  56.    delay_ms(2000);
  57.    lcd_putc("\f");
  58.    lcd_putc("  Sistemas Para\n");
  59.    lcd_putc("  Control-2010");
  60.    delay_ms(3000);
  61.    lcd_putc("\f");
  62.    lcd_putc("  Control Temp\n"); //Saca texto
  63.    lcd_putc("    con LM 35");     //Saca texto
  64.    delay_ms(3000);
  65.    lcd_putc("\f");
  66. }
  67. void convierte(){
  68.    set_adc_channel(0);
  69.    delay_us(50);
  70.    n=read_adc();
  71.    lcd_gotoxy(1,1);
  72.    printf(lcd_putc,"%u",n);
  73.    delay_ms(2000);
  74. }


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado korpaztk

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 202
Re: AYUDAA CON COVERSOR AD PIC 16F88
« Respuesta #2 en: 01 de Noviembre de 2010, 10:26:15 »
yo lo que haria tambien es...

void convierte(){
   set_adc_channel(0);
   delay_us(50);
   n=read_adc();
   DELAY_US(20);
   lcd_gotoxy(1,1);
   printf(lcd_putc,"%u",n);
   delay_ms(2000);
}

hacer un pequeño delay despues de leer el conversor porque hay aveces (me ha pasado) de que la lectura no se carga en la variable... espero poder ayudarte tmb
Korpaz.
Técnico Electronico.

El Papel Es Mi Mejor Psicologo

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: AYUDAA CON COVERSOR AD PIC 16F88
« Respuesta #3 en: 01 de Noviembre de 2010, 11:26:18 »
hacer un pequeño delay despues de leer el conversor porque hay aveces (me ha pasado) de que la lectura no se carga en la variable... espero poder ayudarte tmb

 :shock: Como?
No contesto mensajes privados, las consultas en el foro

Desconectado korpaztk

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 202
Re: AYUDAA CON COVERSOR AD PIC 16F88
« Respuesta #4 en: 01 de Noviembre de 2010, 11:55:24 »
me ha pasado muchas veces que al poner la instruccion:

"x" = read_adc();

y luego seguir con mi programa no cargaba en mi variable lo que leia del conversor, despues de renegar un buen tiempo le he puesto un delay de 20us y me ha funcionado muy bien, nose si sera locura de mi compilador de mi pic o nose jeje...
Korpaz.
Técnico Electronico.

El Papel Es Mi Mejor Psicologo

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: AYUDAA CON COVERSOR AD PIC 16F88
« Respuesta #5 en: 01 de Noviembre de 2010, 12:02:46 »
No entiendo como puede llegar a darse eso  :? Pero bueno, de CCS se puede esperar cualquier cosa  :D


Saludos!
No contesto mensajes privados, las consultas en el foro


 

anything