Foros de Electrónica

Comunidad de discusión sobre Automatización, Electrónica industrial, Microcontroladores y electrónica digital, Robótica, Domótica, Telemática, Tecnologías móviles, y muchos temas más.




Transmisión RS232 con CCS


       



#1  Transmisión RS232 con CCS
hawk360
Registrado: 09 Sep 2006
Mensajes: 91
citar
Estoy intentando transmitir desde mi PIC16F877A a mi PC por el puerto serial pero no consigo que en el hyperterminal se vea nada. El programa del PIC sigue los siguientes pasos:

#USE DELAY (clock = 20000000)
#USE rs232 (BAUD=4800,XMIT=PIN_C6,RCV=PIN_C7,BITS=8 )

Luego defino RC7 como entrada y RC6 como salida.

y por último

while(true)
{
putc(0x34);
delay_ms(1000);
}


Tengo un led conectado en RC6 y cuando no tengo el puerto serie conectado parpadea pero al conectarlo y poner en el hyperterminal que conecte este deja de parpadear. El puerto funciona correctamente porque el PIC lo programo utilizando el bootloader a través del mismo puerto.

#2  
hawk360
Registrado: 09 Sep 2006
Mensajes: 91
citar
Bueno creo que el problema esta en que cuando conecta con el PC el PIC parece que se keda a la espera de recibir algun tipo de confirmación para realizar la transmisión porque en el momento que le doy a conectar en el HYPERTERMINAL se queda como bloqueado y cuando pulso desconectar continua intentando enviar los datos. Alguien sabe algo al respecto. Si hay que darle algun tipo de confirmación desde el PC de que ha recivido datos o algo asi?

#3  
kepelotas
Ubicación: España
Registrado: 02 May 2006
Mensajes: 38
citar
Bueno dos cositas, doy por hecho que has configurado correctamente el hiper terminal no? a 4800 baudios 8n1 etc.

Por otro lado cuando lo conectas atraves del hiperteminal que driver usas (MAX)......... no sé puedes publicar el circuito..................

Porque sin más pistas poco se te puede ayudar.

#4  veamos!
aldoperex
Ubicación: mexico
Registrado: 05 Abr 2007
Mensajes: 7
citar
QUE ondas. bien ok

la hiperterminal que tengas del lado del ordenador debe estal a los mismos baudios que es el numero de transiciones que hacen , es como decir a que velocidad van a hablar y transmitir los dos( no confundir con transmision sincrona).

que version de compilador estas usando ?, yo no defino entradas y salidas en el puerto que voy a usar como comunicacionn, cuando declaro usar #define rs232 con esa linea
es suficiente,

dale una checadita a la ayuda f1 , Smile

#5  Comunicacion
tony_lp
Ubicación: argentina
Registrado: 14 Oct 2007
Mensajes: 4
citar
Hola hawk360, por ahi este codigo te puede servir, esta probado andando en proteus setea la velocidad del puerto a 2400, espero te sirva, cualquier cosa avisas paso el codigo :

Código: Seleccionar todo
#if defined(__PCM__)
#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=2400, xmit=PIN_C4, rcv=PIN_C5,INVERT)
#endif
#include <input.c>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
char lee(void);
char dato;
char pregunto;
int ascii;
void main() {
   SET_TRIS_A(0x00);
   SET_TRIS_B(0x00);
   SET_TRIS_D(0x00);
   SET_TRIS_C(0xFF);
   pregunto = 's';
   ascii=0x73;
   do {
#use delay(clock=1000000)
#use rs232(baud=2400, xmit=PIN_C4, rcv=PIN_C5,INVERT)
      while(!kbhit())
           delay_us(42);
          dato = getc();
            delay_us(42);
          putc(dato);
       if(dato == pregunto){
            OUTPUT_HIGH(PIN_A0);
         }else{
            OUTPUT_HIGH(PIN_A2);
         }
   delay_ms(1000);
   OUTPUT_LOW(PIN_A0);
   OUTPUT_LOW(PIN_A2);
   } while (TRUE);

}
char lee(){
   long timeout;
   short timeout_error;
   timeout_error=FALSE;
   timeout=0;
     while(!kbhit()&&(++timeout<50000))
       delay_us(42);
      if(kbhit()){
         return(getc());
         }
      else {
         timeout_error=TRUE;
         return(0);
      }
}

#6  Duda de como enviar datos
Antonio_Maza
Registrado: 27 Abr 2007
Mensajes: 22
citar
Hola:

A mi me gustaría poder enviar valores flotantes (leídos de un ADC), pero putc(), solo recibe carácters individuales, y puts(); cadenas de caracteres, pero como le haría para enviar datos de coma flotante por esta interfaz, espero alguien me pueda ayudar.

Saludos

#7  
leo_programer
Ubicación: Colombia
Registrado: 01 Ago 2006
Mensajes: 61
citar
hola antonio,

lo que tendrias que hacer es como una especia de ftoa(), no me acuerdo si esa funcion esta incluida en ccs, pero si no, pues diseñala! no es tan dificil! si logras convertir el numero de coma flotante en cadena, pues, la tendras hecha, cuidate, y me comentas cualquier cosa...

pd: aqui hay un ejemplo pero en c++, mira a ver si te sirve como guia, cuidate

#8  
El nombre
Ubicación: Alicante
Registrado: 28 Jun 2006
Mensajes: 1445
citar
lo que tiene que hacer es postear como tiene configurado el hyperterminal y si desconecta el bootloader (queda el puerto libre)
no es muy lógico cargar el boot loades a cuatro mil y pico baudios
Revisa las configuraciones.

#9  
jorgealexvilla
Ubicación: Merida, Venezuela
Registrado: 27 Nov 2008
Mensajes: 2
citar
si aun no ves nada en el hiperterminal, revisa si el echo esta activo en las propiedades de tu conexion del puerto serial.

 Responder



 Otros temas de interés 
No hay mensajes nuevos Como separar señales, si son entrada y salida de datos
No hay mensajes nuevos Circuito acondicionador de entrada 4-40mA y salida 0-10 V
No hay mensajes nuevos Entrada/Salida de audio a traves de USB
No hay mensajes nuevos Conectar salida video de camara a monitor video
No hay mensajes nuevos Circuito con reles para puerto paralelo con salida de 3.3v

Foros de Electronica
|| Cuestiones Elementales de Electrónica || Fuentes de alimentacion || Circuitos de radio || Diseño de circuitos en general ||
|| Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión ||
|| Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfaces y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos ||
Contacto | Acerca de | Ayuda | Normas de la Comunidad | Privacidad | Mapa de los foros
© Foros de Electrónica - Comunidad Internacional de Electrónicos