Autor Tema: Problema recepcion RS232 en PIC16F1933  (Leído 8166 veces)

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

Desconectado thegame

  • PIC18
  • ****
  • Mensajes: 439
    • Mcu Tronics
Re: Problema recepcion RS232 en PIC16F1933
« Respuesta #30 en: 17 de Octubre de 2012, 11:00:26 »
OK,sin resultados positivos aun,cuarto dia de trabajo continuo y es increible que no pueda echarlo a andar jaja,haber porfavor podria alguien colocar los pasos a seguir para una recepcion de RS232,gracias
Nunca se deja de aprender

Desconectado fantaxmax

  • PIC16
  • ***
  • Mensajes: 107
    • Libertycraft - Minecraft
Re: Problema recepcion RS232 en PIC16F1933
« Respuesta #31 en: 17 de Octubre de 2012, 12:35:34 »
pues ni hablar,llevo 3 dias trabajando en esto y nada,una ultima pregunta,saben que voltaje minimo debe haber en MCLR para que opere el microcontrolador???

MCLR debe estar a Vdd si es que esta activado en los fuses, si no da igual porque se usa como entrada

tu problema esta mas alla de mis conocimientos, lo siento,

Saludos!
"El presente es suyo, El futuro es mio" N.T.
El conocimiento es gratuito e ilimitado, solo debes saber donde buscarlo.

Desconectado thegame

  • PIC18
  • ****
  • Mensajes: 439
    • Mcu Tronics
Re: Problema recepcion RS232 en PIC16F1933
« Respuesta #32 en: 17 de Octubre de 2012, 12:59:40 »
gracias fantaxmax te agradesco la ayuda y comparto el avance que he tenido:

        -Cambie la version del compilador CCS de la 4.130 a la 4.128
        -Con el cambio de version estoy recibiendo pero el programa se queda pasmado

coloco el codigo que estoy probando y les comento donde no esta funcionando

Código: [Seleccionar]
#include<16f628a.h>
#use delay(clock=20000000)
#fuses HS,NOWDT,PUT,NOBROWNOUT,NOPROTECT,MCLR

#use rs232(BAUD=9600,XMIT=PIN_B2,RCV=PIN_B1,BITS=8,STOP=1,PARITY=N)

char recibio=0;

#INT_RDA
void recepcion(void)
{
recibio=1;
output_low(PIN_B3);
}

void config_interrupcion(void)
{
clear_interrupt(INT_RDA);
enable_interrupts(INT_RDA);
enable_interrupts(PERIPH);
enable_interrupts(GLOBAL);
}

void main(void)
{
config_interrupcion();
while(TRUE)
{
if(recibio==1)
{
output_low(PIN_B4);
}
}
}

-la instruccion del IF dentro del WHILE infinito,no la ejecuta.
-la de la interrupcion si me la hace correctamente,es decir entra a la interrupcion pero no al IF

Nota: los leds estan activos en bajo por ello les mando un 0 para encenderlos
« Última modificación: 17 de Octubre de 2012, 13:05:10 por thegame »
Nunca se deja de aprender

Desconectado fantaxmax

  • PIC16
  • ***
  • Mensajes: 107
    • Libertycraft - Minecraft
Re: Problema recepcion RS232 en PIC16F1933
« Respuesta #33 en: 17 de Octubre de 2012, 13:22:12 »
no estoy seguro pero parece que cuando usas el uart por software como lo haces ahora, no funcionan las interrupciones, si vas a usar interrupciones por RDA, usa mejor el UART fisico, con eso a mi parecer debiese ingresar al if que no entra,

Saludos!
"El presente es suyo, El futuro es mio" N.T.
El conocimiento es gratuito e ilimitado, solo debes saber donde buscarlo.

Desconectado thegame

  • PIC18
  • ****
  • Mensajes: 439
    • Mcu Tronics
Re: Problema recepcion RS232 en PIC16F1933
« Respuesta #34 en: 17 de Octubre de 2012, 13:49:55 »
amm pues yo tenia entendido que para hacerlo por software tenia que colocar esta instruccion FORCE_SW y de no hacerlo toma el UART del Hardware,talves me equivoco pero lo checo gracias fantaxmax
 
Nunca se deja de aprender

Desconectado thegame

  • PIC18
  • ****
  • Mensajes: 439
    • Mcu Tronics
Re: Problema recepcion RS232 en PIC16F1933
« Respuesta #35 en: 17 de Octubre de 2012, 14:28:42 »
Nop no es eso,ahora se esta disparando la interrupcion de la nada incluso si desconecto el lector y sigue sin entrar al IF
Nunca se deja de aprender

Desconectado thegame

  • PIC18
  • ****
  • Mensajes: 439
    • Mcu Tronics
Re: Problema recepcion RS232 en PIC16F1933
« Respuesta #36 en: 17 de Octubre de 2012, 15:21:54 »
Lo he conectado a la PC y con el siguiente codigo trabaja OK

Código: [Seleccionar]
#include<16f628a.h>
#use delay(clock=20000000)
#fuses MCLR,HS,NOWDT,NOPUT,NOBROWNOUT,NOPROTECT,NOLVP,NOCPD

#use rs232(BAUD=9600,XMIT=PIN_B2,RCV=PIN_B1,BITS=8,STOP=1,PARITY=N)

char c;

void config_interrupcion(void)
{
clear_interrupt(INT_EXT);
enable_interrupts(INT_EXT);
enable_interrupts(PERIPH);
enable_interrupts(GLOBAL);
}

void main(void)
{
//config_interrupcion();
printf("start");
while(TRUE)
{
if(kbhit())
{
c=getc();
if(c=='c')
{
output_toggle(PIN_B3);
}
}
}
}

Ahora me falta hacerlo funcionar con el Lector
Nunca se deja de aprender

Desconectado fantaxmax

  • PIC16
  • ***
  • Mensajes: 107
    • Libertycraft - Minecraft
Re: Problema recepcion RS232 en PIC16F1933
« Respuesta #37 en: 17 de Octubre de 2012, 15:47:09 »
Código: C
  1. #include<16f628a.h>
  2. #use delay(clock=20000000)
  3. #fuses MCLR,HS,NOWDT,NOPUT,NOBROWNOUT,NOPROTECT,NOLVP,NOCPD
  4.  
  5. #use rs232(BAUD=9600,XMIT=PIN_B2,RCV=PIN_B1,BITS=8,STOP=1,PARITY=N)
  6.  
  7. char c;
  8.  
  9. void config_interrupcion(void)
  10. {
  11.         clear_interrupt(INT_EXT);
  12.         enable_interrupts(INT_EXT);
  13.         enable_interrupts(PERIPH);
  14.         enable_interrupts(GLOBAL);
  15. }
  16.  
  17. void main(void)
  18. {
  19.         //config_interrupcion();
  20.         printf("start");
  21.         while(TRUE)
  22.         {
  23.                 if(kbhit())
  24.                 {
  25.                         c=getc();
  26.                         if(c!=0)
  27.                         {
  28.                                 output_toggle(PIN_B3);
  29.                                 delay_ms(1000); //lo uso para evitar que por cada byte que reciba cambie de estado
  30.                         }
  31.                 }
  32.         }
  33. }

prueba con ese codigo y el lector, cuando deslices la tarjeta, por cada transmision va a cambiar el estado, teoricamente Saludos!
« Última modificación: 17 de Octubre de 2012, 15:55:59 por fantaxmax »
"El presente es suyo, El futuro es mio" N.T.
El conocimiento es gratuito e ilimitado, solo debes saber donde buscarlo.

Desconectado thegame

  • PIC18
  • ****
  • Mensajes: 439
    • Mcu Tronics
Re: Problema recepcion RS232 en PIC16F1933
« Respuesta #38 en: 17 de Octubre de 2012, 16:30:34 »
Probando tu codigo fantaxmax,con la PC,solo me lo ejecuta bien una ves y despues ya no responde,lo interesante aqui seria mas bien hacerlo trabajar para que me reciba y cheque la cadena completa de 8bytes que pretendo enviar,digamos que con un byte si funciona,hare mas pruebas y te comento,muchas gracias y se siguen aceptando sugerencias jeje
Nunca se deja de aprender

Desconectado fantaxmax

  • PIC16
  • ***
  • Mensajes: 107
    • Libertycraft - Minecraft
Re: Problema recepcion RS232 en PIC16F1933
« Respuesta #39 en: 17 de Octubre de 2012, 16:43:03 »
lo corrigo, agregale un c=0; despues del delay o antes como quieras, si lo estas probado con el pc, elimina el delay, el delay lo coloque solo para el lector dado que envia varios bytes de una, y podria el cambio no verse, en cambio con la pc puedes enviar un solo byte si lo deseas
"El presente es suyo, El futuro es mio" N.T.
El conocimiento es gratuito e ilimitado, solo debes saber donde buscarlo.

Desconectado thegame

  • PIC18
  • ****
  • Mensajes: 439
    • Mcu Tronics
Re: Problema recepcion RS232 en PIC16F1933
« Respuesta #40 en: 17 de Octubre de 2012, 17:51:27 »
Pues nop,de plano no logro hacer que el PIC me lea la cadena del lector,con la PC va bien pero con el lector de plano no,alguna idea de algo que me falte o que este mal
Nunca se deja de aprender

Desconectado fantaxmax

  • PIC16
  • ***
  • Mensajes: 107
    • Libertycraft - Minecraft
Re: Problema recepcion RS232 en PIC16F1933
« Respuesta #41 en: 17 de Octubre de 2012, 18:01:01 »
no tengo mas ideas, lo siento.
"El presente es suyo, El futuro es mio" N.T.
El conocimiento es gratuito e ilimitado, solo debes saber donde buscarlo.

Desconectado thegame

  • PIC18
  • ****
  • Mensajes: 439
    • Mcu Tronics
Re: Problema recepcion RS232 en PIC16F1933
« Respuesta #42 en: 17 de Octubre de 2012, 19:05:40 »
alguien ha usado algun lector de codigo de barras similar al posline LC2300 o de algun otro tipo en conjunto con algun PIC
Nunca se deja de aprender

Desconectado thegame

  • PIC18
  • ****
  • Mensajes: 439
    • Mcu Tronics
Re: Problema recepcion RS232 en PIC16F1933
« Respuesta #43 en: 17 de Octubre de 2012, 20:29:19 »
Ok,ya logre que el PIC me reciba lo que me envia el lector,uff,ahora el problema es que no siempre me acepta el codigo,es decir ese codigo activa silamente un pin del PIC por lo que en ocaciones no es a la primera pasada cuando funciona,digamos que tengo que pasarlo varias veces para que funcione

la pregunta ahora es,como hago para garantizar la lectura y chequeo del codigo????
Nunca se deja de aprender

Desconectado fantaxmax

  • PIC16
  • ***
  • Mensajes: 107
    • Libertycraft - Minecraft
Re: Problema recepcion RS232 en PIC16F1933
« Respuesta #44 en: 17 de Octubre de 2012, 20:49:19 »
imagino que en el programa con el que lo conseguiste, esperas los 8 bytes que envia el lector

y que bueno que lo consiguieras,
Saludos!
"El presente es suyo, El futuro es mio" N.T.
El conocimiento es gratuito e ilimitado, solo debes saber donde buscarlo.


 

anything