Autor Tema: serin serout con pic simulator ide  (Leído 3902 veces)

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

Desconectado WALTER ALEJANDRO

  • PIC12
  • **
  • Mensajes: 61
serin serout con pic simulator ide
« en: 11 de Octubre de 2011, 11:11:27 »
Me encuentro con el siguiente problema:usando el 16f628a osc interno y tratando de de comunicar dos pic entre si ,primero con un cable de conexion para luego pasar a un mudol rf,cuando lo simulo funciona bien pero en el mundo real no responde y ya le di mil vueltas al asunto por eso ahi va el juego de transmisor y receptor a ver si alguno me aclara la duda.Desde ya muchas gracias 
AllDigital
TRISA = 0xff
TRISB = 0
Dim sube As Byte
sube = 222
Dim baja As Byte
baja = 221
Dim stop As Byte
stop = 223

Define SEROUT_DELAYUS = 1000
inicio:  'subir
If RA0 = 1 Then
Serout RB0, 2400, #sube, Lf

Endif

'''''''''''''''''''''''''''''''''''''''''''''''''''''''
If RA1 = 1 Then
Serout RB0, 2400, #baja, Lf
Endif

''''''''''''''''''''''''''''''''''''''''''''''
If RA2 = 1 Then
Serout RB0, 2400, #stop, Lf
Endif
Goto inicio
end
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
AllDigital
TRISA = %11000000
TRISB = 0xff
Dim sube As Byte
sube = 222
Dim baja As Byte
baja = 221
Dim stop As Byte
stop = 223
Dim numero As Byte
Symbol sup = RA6
Symbol inf = RA7
Define SEROUT_DELAYUS = 1000
inicio:

Serin RB7, 2400, numero

If numero = sube Then Goto arriba
If numero = baja Then Goto bajar
If numero = stop Then Goto parar
Goto inicio
''''''''''''''''''''''''''''''''''''''''''''''''''
arriba:
Low RA0  'apago la bajada
High RA1  'activo la subida,y con el micro sup lo corto
numero = 0
Goto inicio
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
parar:
Low RA0  'apago la bajada
Low RA1  'apago la subida
numero = 0
Goto inicio
'''''''''''''''''''''''''''''''''''''''''''''''''''''
bajar:
Low RA1  'apago la subida
High RA0  'activo la bajada
numero = 0
Goto inicio


Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: serin serout con pic simulator ide
« Respuesta #1 en: 22 de Octubre de 2011, 06:44:04 »
Por lo pronto tienes que eliminar todos los modificadores # en el transmisor.
Saludos desde Granada, España.

Desconectado WALTER ALEJANDRO

  • PIC12
  • **
  • Mensajes: 61
Re: serin serout con pic simulator ide
« Respuesta #2 en: 24 de Octubre de 2011, 18:39:31 »
Cuando quite los # en el simulador aparecian caracteres raros y en el mundo real no funcionaba(yo lei en el manual que precediendo a una variable hay que anteponer el #,no es asi?)-Desde ya gracias por su atencion

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: serin serout con pic simulator ide
« Respuesta #3 en: 24 de Octubre de 2011, 20:17:06 »
Veamos, el modificador  # se emplea para dar formato a una variable que tiene que ser visualizada en un dispositivo gráfico, ya sea serie, lcd, etc.
Por ejemplo:
Stop = 120 no es igual a #Stop.
Stop tiene una longitud de 1Byte, mientras que #Stop genera 3Bytes.
Suponiendo que Stop = 120 = código 120 ASCII que en representación gráfica corresponde a la x minúscula.
#Stop = Código ASCII 49 = 1 gráfico, Código ASCII 50 = 2 gráfico, Código ASCII 48 = 0 gráfico.

Por lo tanto Serout RB0, 2400, #stop, Lf es lo mismo que si escribes:
Serout RB0, 2400, 49 '1
Serout RB0, 2400, 50 '2
Serout RB0, 2400, 48 '0
Serout RB0, 10 'Lf

Que expresado todo en la misma línea queda:

Serout RB0, 2400, #stop, Lf  = Serout RB0, 2400, 49, 50, 48, 10
Serout RB0, 2400, stop, Lf = Serout RB0, 2400, 120, 10
Por lo tanto Serout RB0, 2400, 120, 10 no es igual a Serout RB0, 2400, 49, 50, 48, 10.
Por supuesto suponiendo siempre que stop = 120.

Y aquí el enlace a los códigos ASCII:

http://www.elcodigoascii.com.ar/

http://es.wikipedia.org/wiki/ASCII
« Última modificación: 24 de Octubre de 2011, 20:28:33 por dogflu66 »
Saludos desde Granada, España.

Desconectado WALTER ALEJANDRO

  • PIC12
  • **
  • Mensajes: 61
Re: serin serout con pic simulator ide
« Respuesta #4 en: 25 de Octubre de 2011, 11:30:30 »
Lo del modificador #me quedo muy claro y ya veo el error ,ahora cuando decis que #Stop = Código ASCII 49 = 1 gráfico, Código ASCII 50 = 2 gráfico, Código ASCII 48 = 0 gráfico. podrias explayarte un poco mas ya que no veo de donde sale,por favor y desde ya muchas gracias.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: serin serout con pic simulator ide
« Respuesta #5 en: 25 de Octubre de 2011, 21:10:36 »
La verdad es que me has desmontado todo el hilo anterior, realmente no se como explicarlo. Veamos, para nosotros un numero nos genera mucha información, me explico, para nosotros el número 9 representa una cantidad, pero no solo es un valor numérica también es un gráfico, ósea un dibujo o imagen si lo prefieres. Los micros solo trabajan con números, de hecho con ceros y unos, no necesitan los gráficos para nada. Cuando escribes en tu procesador de textos o en el editor de tu compilador el único que ve la letra x como grafico somos nosotros, el ordenador solo sabe que es un número. La imagen x minúscula es un número, la imagen X mayúscula es otro número, la imagen que representa al 1 es un número que no está representada internamente por el número 1, ojo con esto, los gráficos que representa a los números no corresponden con su valor matemático. Hace muchas décadas y después de algunas mejoras se decidió establecer un estándar, este estándar se llama códigos ASCII, y consiste en asignar un numero de 8bit a la mayoría de gráficos que representan símbolos, letras, números para nosotros y otros que son los caracteres de control, que con ellos indicamos por ejemplo, avance de línea, retorno de carro, pagina en blanco, retroceso, etc, estos caracteres de control tienen asignados los números más bajos, puedes ver sus equivalencias en la tabla ASCII anteriores. Por lo tanto cuando la función se encuentra con el modificador # precediendo una variable, esta función entiende que el valor de la variable tiene que ser descompuesto en códigos ASCII y enviado en este formato ya que se enviarán a un dispositivo de salida visual que muestra gráficos alfanuméricos. Cuando a un dispositivo como el hyperterminal o un LCD alfanumérico le llega un código ASCII, este dispositivo lo que hace es dibujar su imagen asociada, si la tiene, de lo contrario será un carácter de control y lo que hará será interpretarlo como una orden. Por lo tanto en el ejemplo anterior asignamos a la variable stop el valor de 120, al igual que se produce una traducción de los números a imágenes mediante los códigos ASCII, también se produce una traducción inversa hacia el procesador, el 120 que para nosotros está compuesto de tres dígitos es convertido a uno solo en su equivalente binario sin asociación de imagen, de la misma manera stop que para nosotros esta compuesto por cuatro letras, 4 gráficos, es convertido a un único número binario de uno o más bytes según el procesador empleado, a esto se le llama dirección de memoria, ósea stop no es más que una dirección de memoria para el micro, un número. Y volviendo a la variable stop precedida del símbolo #, esta será descompuesta en tres dígitos, tres bytes, y a cada byte se le asignara el código ASCII correspondiente a los gráficos pertinentes para que nosotros podamos ver en el medio de salida visual las imágenes o dígitos que se compone el número en decimal 120, este número se descompone entres códigos asii, el 49, 50 y 48.
El 10 corresponde al código de control avance de línea y que se suele abreviar con las letras Lf. El compilador sustituye la constante del sistema Lf por el número 10.

http://www.elcodigoascii.com.ar/

PD: Espero que te refirieras a esto, porque si esto ya lo sabias me suicido.
« Última modificación: 25 de Octubre de 2011, 21:24:27 por dogflu66 »
Saludos desde Granada, España.

Desconectado WALTER ALEJANDRO

  • PIC12
  • **
  • Mensajes: 61
Re: serin serout con pic simulator ide
« Respuesta #6 en: 26 de Octubre de 2011, 08:07:07 »
Exelente explicacion,( por favor no  te suicides),muchas veces los que venimos de otra base de estudio(electromecanica)y por cosas  de la vida llegamos de viejo a la electronica en forma autodidactica carecemos de ciertas bases que solo se aprenden preguntando lo que parecce obvio.
Desde ya muchas gracias por tu tiempo y dedicacion.Un abrazo

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: serin serout con pic simulator ide
« Respuesta #7 en: 26 de Octubre de 2011, 19:36:11 »
jajaja, desde luego no pienso suicidarme, lo que ocurre es que la parrafada anterior me llevo hora y media, porque no encontraba la forma de explicar la idea. Espero que los puristas en la materia no me critiquen demasiado por la forma de abordar el tema.

PD. Un abrazo para ti tambien.
Saludos desde Granada, España.


 

anything