Autor Tema: ccs y comunicacion serial (adquisicion de datos)  (Leído 11202 veces)

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

Desconectado kikecon

  • PIC10
  • *
  • Mensajes: 35
ccs y comunicacion serial (adquisicion de datos)
« en: 27 de Junio de 2010, 03:28:06 »
hola amigos como estan nuevamnete x aca para comentarles que ya empec con el uso del ccs (pic c compiller), bien pero como siempre se me presenta una duda he hecho mi programcion para adquirir una señal analogica y enviarlo por el puerto serie y que sera almacenado en una hoja texto en visual basic bueno el problema es el siguiente aparentemente la programacion esta bien incluso lo simule en proteus y se obtienen los valores que se desean, leien un texto que se podia interactuar  desde proteus con los puertos serie fisicos lo intente pero no salia nada en el hyperterminal y ya no salia nada en el la pantalla del proteus (no recuedo su nombre solo recuerdo que es virtual .. no se que mas :P ) y hermos grabado el pic y tmpc sale nada que puede estar mal en el ckto he usado un max 232 ojala me puedan ayudar gracias amigos.

Pd: dejo la logica del pic


#include <16f873a.h>
#device adc=10
#FUSES XT,NOWDT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N)

void main()
{
   float a;
   float b;
   setup_adc_ports(AN0);
   setup_adc(ADC_CLOCK_INTERNAL);

   for(;;)
   {
      set_adc_channel(0);
      delay_us(10);
      a= read_adc();
      b = 5.0*q / 1024.0;
      printf("Tensión = %01.2fV\r", b); //r es usado para el cambio de linea
      delay_ms(100);
   }
}

PD: en el texto que encontre la programacion era casi igual solo que en un 16f877 y ademas en la variable a la toma como entero y le pone el numero 16 (int16) mmm que me dicen ud de eso? gracias muchachos
Enrique Contreras R.

Desconectado MarkKnopfler81

  • PIC12
  • **
  • Mensajes: 64
    • PICs, Electrónica y Robótica
Re: ccs y comunicacion serial (adquisicion de datos)
« Respuesta #1 en: 27 de Junio de 2010, 10:01:43 »
Revisa bien la conexión del MAX232 y el PIC porque el código funciona bien, a excepcion de la linea:
Código: [Seleccionar]
b = 5.0*q / 1024.0;
que deberias reemplazarla por:
Código: [Seleccionar]
b = 5.0*a / 1024.0;
pero me imagino que será un error de tipeo ya que sino no te hubiese compilado.

saludos.

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: ccs y comunicacion serial (adquisicion de datos)
« Respuesta #2 en: 27 de Junio de 2010, 14:07:30 »
Hola kikecon, teniendo en cuenta la advertencia que te hace MarkKnopfler81, el circuito trabaja perfectamente con el MAX232 y el PIC.  Hice la prueba usando es siguiente código:

Código: [Seleccionar]
#include <16f873a.h>
#device adc=10
#FUSES XT,NOWDT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N)

void main()
{
   float a;
   float b;
   setup_adc_ports(AN0);
   setup_adc(ADC_CLOCK_INTERNAL);

   while(true)
   {
      set_adc_channel(0);
      delay_us(10);
      a= read_adc();
      b = 5.0*a / 1024.0;
      printf("Tensión = %01.2fV\r", b); //r es usado para el cambio de linea
      delay_ms(500);
   }
}

Podrias subir el circuito del PIC y MAX232?.  Tal vez tengas un error de conexión...

Un saludo.

Desconectado MarkKnopfler81

  • PIC12
  • **
  • Mensajes: 64
    • PICs, Electrónica y Robótica
Re: ccs y comunicacion serial (adquisicion de datos)
« Respuesta #3 en: 01 de Julio de 2010, 16:00:25 »
El error mas comun con RX y TX es que el TX del PIC es el RX del PC y viceversa.

El MAX232 deberías conectarlo al PIC de la siguiente manera

PICMAX232DB9
RC6 / TX11 / T1IN-
RC7 / RX12 / R1OUT-
-13 / R1IN3
-14 / T1OUT2
VSS / GND155

Revisa que este todo igual en tu circuito

saludos.


 

anything