Autor Tema: Alternativa al Hserout  (Leído 3401 veces)

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

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
Alternativa al Hserout
« en: 10 de Junio de 2004, 00:42:00 »
Parece que aún consumiendo mucho menos código que serout2...
El comando Hseout, aún me da quebraderos de cabeza para optimizar el tamaño del código del progama...

Conoceis alguna alternativa en ASM, para integrar el un programa en PBP???
O algún procedimiento con el cual ahorrar espacio???

En mi programa he puesto tal cantidad de hserout para comunicarme con el PC, que apenas me está quedando ya espacio para las demás posibilidades que le quiero adjuntar...

Estoy trabajando con un 16f876, y sé que la respuesta mas lógica sería... migrar a un 18f... Pero ya es por cabezonería, el conseguir que el programa entre en el 16f...

Tnks

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: Alternativa al Hserout
« Respuesta #1 en: 10 de Junio de 2004, 01:05:00 »
Abago, supongo que esto ya lo has hecho pero, ¿porque no pones sólo un HSEROUT en una subrutina al que llamas tantas veces como necesites pasando los parámetros que correspondan?
Creo que de esta manera sólo te "engoradará" el código una vez.

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: Alternativa al Hserout
« Respuesta #2 en: 10 de Junio de 2004, 02:25:00 »
Dame un ejemplo de como pasarías los parámetros a una subrrutina...

por ejemplo
hserout ["SE HA DETECTADO ", CONTADOR, " PULSACIÓN/ES EN EL PUERTO 1",10,13]

Como pasarías el texto a la subrrutina???

En visual basic, por ejemplo, es muy facil pasar variables por valor o referéncia, dado que puedes trabajar con variables string...
Pero en PBP, las variables mas grandes son word..



Bueno, acepto cualquier idea...

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: Alternativa al Hserout
« Respuesta #3 en: 10 de Junio de 2004, 03:02:00 »
Pensé que en PBP también podrías hacerlo con strings.

Bueno, pues de alguna manera la función HSEROUT hace un tratamiento de string con la cadena que le pasas, ¿cómo lo procesa?, ¿lo deja en alguna posición de memoria?

Si lo averiguas, podrás dejar el "parámetro" en esas posiciones de memoria e invocar al HSEROUT, ¿no?

Quizás sea conveniente ver el ASM que resulta de la compilación de un HSEROUT con un string para intentar averiguarlo.

Desconectado Colores

  • Moderadores
  • PIC16
  • *****
  • Mensajes: 232
RE: Alternativa al Hserout
« Respuesta #4 en: 10 de Junio de 2004, 18:29:00 »
Y si le pasaras variables a Hserout?
Antes de llamar a la rutina le das valores a las variables que usás en esa funcion y listo...

Var1 = "SE HA DETECTADO"
Var2 = " PULSACIÓN/ES EN EL PUERTO 1"

hserout  [Var1, CONTADOR, Var2, 10, 13]

No sé si se podrá...
??

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: Alternativa al Hserout
« Respuesta #5 en: 10 de Junio de 2004, 23:16:00 »
Me temo que no, eso fue lo que yo le proponía a Abago inicialmente, pero luego me aclaró que la variable más grande en PBP era el tipo Word, así que nada de strings...

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: Alternativa al Hserout
« Respuesta #6 en: 10 de Junio de 2004, 23:29:00 »
Por suerte, no tenemos el Windows, gestionando los recursos del pic...

A ver si alguno de los maestros, se les ocurre alguna genial idea...
Porque de momento, no se como atacar al problema...

Tnks

Desconectado the_nitro

  • PIC12
  • **
  • Mensajes: 53
RE: Alternativa al Hserout
« Respuesta #7 en: 12 de Junio de 2004, 05:55:00 »
 Hola, igual es una chorrada, pero weno....
 Y no puedes pasarle en lugar de la cadena completa, la direccion de la misma??? No se por ejemplo mediante una tabla o simple direccion de comienzo.

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: Alternativa al Hserout
« Respuesta #8 en: 12 de Junio de 2004, 22:09:00 »
Creo que es la solución mas viable...
Almacenar las cadenas a enviar en la eeprom, o en la propia flash del micro, e ir leyendo desde determinadas posiciones de memoria byte a byte...
Luego llamar a la función de envío...

Ya barajé la idea de hacerlo así, pero lo ví un poco engorroso....

Pero agradezco el planteamiento que has dado...

Desconectado RGL

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 634
RE: Alternativa al Hserout
« Respuesta #9 en: 18 de Junio de 2004, 08:08:00 »
Como dice abago el tema es engorroso, pero de puede hacer almacenando la info en un array y luego con un for next se va mandando.

Pero se me ocurre una cosa que puede salvarte la vida. Seguramente los mensajes de texto que tienes que enviar son prefijados y limitados en extensión y además no habrá muchos. Si esto es así y los conoces de antemano, no tienes por qué mandar toda la cadena. Podemos mandar un número y ya está, es decir los enviamos codificados, con lo cual te quitas todos los problemas de un plumazo.  En el receptor puedes decodificar los mensajes y tratarlos convenientemente.

Saludos
Ricky
Madrid-España

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: Alternativa al Hserout
« Respuesta #10 en: 18 de Junio de 2004, 21:53:00 »
Rgl... Muy buena idea.. Y solución...