Autor Tema: 16F876A y transmision de datos HSEROUT  (Leído 4211 veces)

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

Desconectado lager

  • PIC18
  • ****
  • Mensajes: 258
RE: 16F876A y transmision de datos HSEROUT
« Respuesta #15 en: 14 de Octubre de 2004, 13:07:00 »
Que bueno que solucionaste TU problema pana Manex_1987, uso el 16f628  a 4Mhz en simulacion y armado lo e tenido trabajando con serin y hserin,y la temperatura a la que esta trabajando tu modelo, creo que eso no se aplica a todos los modelos.Otra cosa, abria que verse la calibracion del reloj interno que usaste, la velocidad a la que quieras transmitir y sobre todo hecharle una buena revizada al ds de ese micro, aunque si no quieres esos detalles siempre esta el Reloj externo para evitar ajustes externos para hacerlo funcionar .
Salu2 panas

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
RE: 16F876A y transmision de datos HSEROUT
« Respuesta #16 en: 14 de Octubre de 2004, 13:53:00 »
Lager, me he leido su data entero


Desconectado lager

  • PIC18
  • ****
  • Mensajes: 258
RE: 16F876A y transmision de datos HSEROUT
« Respuesta #17 en: 14 de Octubre de 2004, 14:08:00 »
No lo dudo pana, eres TENAZ!! y eso es muy bueno, pero tu problema REAL, radica en que estas especificando RELOJ EXTERNO no interno(hberlo dicho antes pana) tu solucion NUEVAMENTE comprobada:
device=16f88
INTRC_IO=0X3FFC <-------- RELOJ INERNO, NO CRISTAL  DE 8 EXTERNO!!
OSCTUNE=0X0090  <-------CALIBRACION

all_digital true
portb_pullups on
DIM X AS BYTE
DF:
"SERIN PORTB.2,396,[X]
"IF X="1" THEN
"HIGH PORTA.2
"SEROUT PORTB.5,396,["ON"]
"ENDIF
"IF X="0" THEN
"LOW PORTA.2
"clear portb.5
SEROUT PORTB.5,396,["OFF"]
delayms 1000
"ENDIF
"GOTO DF
end
Si no especificas que es interno, solo sale una j, otra cosa, ya que es inexacto(por TODAS las razones que te ponga cualquier persona) usa una velocidad de RECEPCION en tu pc mayor, es decir en este caso 4800 (ya que evias a 2400).
Pruebalo y me dices, esto puedes aun variarlo, leete el ds(por ahi hay otro registro OSCCON) en la seccion de calibrar el RC interno para variar el osctune, no se quizas no tengas ni que reducir la velocidad , claro solo es una idea .(CONFIG INTRC_IO)
Un abrazo pana

Desconectado egds

  • PIC12
  • **
  • Mensajes: 76
RE: 16F876A y transmision de datos HSEROUT
« Respuesta #18 en: 23 de Febrero de 2005, 15:46:00 »
Escrito originalmente por MarquesSalsero
Notas importantes sobre el wait:

a: el wait no espera a recibir exactamente lo que tu le has indicado que espere, sino que espera a recibir "algo" sea lo que sea, incluso el ruido que pueda haber en la linea lo activa. Por eso a veces parece que no  funciona correctamente.

b: si la linea de datos que llega al puerto se queda enclavada en el valor de activo, el wait se queda bloqueado para siempre. La gran "guru" del foro oficial del picbasicpro sugiere usar, para aplicaciones criticas,  un pequeño circuito con un multivibrador que desbloquee la entrada.



Hola Marques,

Creo que a mi me pasa eso, utilizo Wait y aveces se me queda ahi, ademas es una apliación critica, en la que no podré resetear el circuito cuando se quede ahí. El 555 para que lo conectas? es decir como actúa sobre la entrada del PIC.

Un saludo

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2060
RE: 16F876A y transmision de datos HSEROUT
« Respuesta #19 en: 25 de Agosto de 2005, 16:38:00 »
Hola amigos voy a colocar esto a pesar de que los mensajes arriba expuestos ya son algo viejos pero puede ser de ayuda.

Cuando se utiliza el pic basic pro y el comando serin, serin2, entre otros y se emplea el wait hay que tener encuenta lo siguiente, cuando se trabaja en RS-232 la linea de entrada de datos cuando no se reciben datos debe permanecer siempre en 1 logico (para logica verdadera) para que la instruccion serin comience a temporizar el tiempo programado en el wait, en caso de que la señal de entrada no se mantenga en uno logico y esta cambie de 0 a 1 y viceversa la instruccion serin, serin2 que empleen el wait no trabajara y se quedara alli sin hacer nada de hecho si el pin de entrada programado en serin, serin2... se coloca a cero logico fijo tampoco trabajara.
Espero poder ayudar con esta explicacion

Saludos