Autor Tema: Desconocimiento sobre los Strings en Basic  (Leído 4291 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Desconocimiento sobre los Strings en Basic
« en: 04 de Marzo de 2006, 01:43:00 »
Mi primer acercamiento al mundo de los PIC tuve profesionalmente que hacerlo en PIC Basic Pro ya que me encargaron modificar cierto firmware que estaba realizado en este idioma.

Al poco me puse a hacer mis propios experimentos con PBP también hasta que me enfrenté al problema del manejo de strings ...

No pude avanzar mucho, entre otras cosas porque me pasé rápidamente al CCS PIC C, idioma que aunque no conocía se parecía muchisimo a otros C"s que había manejado y que eran muy similares ....

Acabo de terminar un ejemplo en CCS C sobre el manejo de strings ( Mis Funciones CCS C Favoritas ) y me ha asaltado la duda, que creo que amigos y maestros como LordLafebre pueden despejar:

¿ Cómo se manejan los strings en Pic Basic Pro? ¿es potente? ¿es ....?

Si quisiesemos realizar este mismo ejemplo en PIC Basic Pro ¿sería muy dificil? ¿tendríamos que construirnos todo manejando sólo caracteres en arrays? ...

Un saludo.

Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Desconocimiento sobre los Strings en Basic
« Respuesta #1 en: 04 de Marzo de 2006, 13:45:00 »
Hola:

No he trabajado con string, segun la ayuda de PBP:

Codigo:
Modifier                          Operation
 
{I}{S}BIN{1..16}         Send binary digits
 
{I}{S}DEC{1..5}          Send decimal digits
 
{I}{S}HEX{1..4}          Send hexadecimal digits
 
REP c
                          Send character c repeated n times
 
STR ArrayVar{
}          Send string of n characters

1)       A string constant is output as a literal string of characters.
2)  A numeric value (either a variable or a constant) will send the corresponding ASCII character. Most notably, 13 is carriage return and 10 is line feed.
3)  A numeric value preceded by BIN will send the ASCII representation of its binary value. For example, if B0 = 8, then BIN B0 (or BIN 8) will send "1000".  
4)  A numeric value preceded by DEC will send the ASCII representation of its decimal value. For example, if B0 = 123, then DEC B0 (or DEC 123) will send "123".  
5)  A numeric value preceded by HEX will send the ASCII representation of its hexadecimal value. For example, if B0 = 254, then HEX B0 (or HEX 254) will send "FE".
6)  REP followed by a character and count will repeat the character, count time. For example, REP A0"4 will send "0000".  
7)  STR followed by a byte array variable and optional count will send a string of characters. The string length is determined by the count or when a 0 character is encountered in the string.  


Pues maestro no soy en PBP, hay muchas cosas que no he intentado, esta seria una de ellas, pero las funciones Bin, Dec, Hex, Str permiten tratar la variable en ese tipo de formato.

No se si es eso a lo que te refieres....? o estoy equivocado,  si algun compañero que sepa mas sobre esto en PBP que por favor me corrija si me he equivocado... AvergonzadoAngelito

No soy muy entendido en este tema, recuerden que solo soy un humilde hobbista... Giño

 

Desconectado raraavis

  • PIC10
  • *
  • Mensajes: 47
Re: Desconocimiento sobre los Strings en Basic
« Respuesta #2 en: 24 de Marzo de 2007, 09:05:07 »
Hola RedPIc:

En Basic si usas el Proton como compilador puedes manejar strings sin problemas pero solo para los pics con core 16 como por ejemplo los 18F.
esto es de la ayuda del Proton. :)


Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: Desconocimiento sobre los Strings en Basic
« Respuesta #3 en: 25 de Marzo de 2007, 01:54:45 »
Hola señor Redpic.

No he utilizado mucho las cadenas, pero alguna vez lo necesité y emplee el ejemplo que sugiere microengineeringlabs: http://www.microengineeringlabs.com/resources/samples/pbp/ser2mod.bas

Sobre si es potente o no.....
Creo que CSS es mejor (aunque no lo he usado) por lo que han comentado en el foro. El PBP lo saca a uno de apuros pero quizá no sea el mejor generador de código para esta aplicación.
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado cptinoco1024

  • PIC10
  • *
  • Mensajes: 1
manejo de Strings en PicBasic pro
« Respuesta #4 en: 13 de Julio de 2010, 18:12:57 »
hola amigo sera que me pueden ayudar puesb bien les explico que necesito hacer tengo un dispositivo que si lo leo mediante el puerto serial de mi PC me da una cadena de caraceteres encriptados.... mas o menos asi:

.LOOÿ.....ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ..ÿÿ....¨)....b.ÿÿÿÿÿÿÿÿ....................Áÿÿÿÿ..œØ

y bueno lo que quiero hacer es mediante el pic 16f877A almacenarlos en la memoria interna del pic y extraer tal y como llegaron esos datos para luego enviarlos mediante un modem como mensaje de texto hacia otro modem que esta conectado a una pc y a travez de una software estos datos son interpretados..... necesitp de su ayuda

como lo puedo hacer??????????

gracias por su ayuda...

ECUADOR

Desconectado kamisama

  • PIC16
  • ***
  • Mensajes: 151
Re: Desconocimiento sobre los Strings en Basic
« Respuesta #5 en: 16 de Agosto de 2010, 11:29:48 »
Hola, primero yo quiero apuntar a que si uso MCU's en lugar de una PC lo hago para optimizar recursos, hacer a un lenguaje mas POTENTE (para el usuario) implica dejarlo IMPOTENTE para el sistema embebido... naturalmente hay MCUS ya diseñados para desperdiciar memoria y potencia pero no por ello hay que ir siempre hacia esa tendencia, porque los MCU's sino van a desaparecer y entonces migremos todos a Rabbit o ARM.
Yo creo que lo potente, en este caso en PBP, es poder añadir una libreria o un modulo en ASM para el tratado de strings... byte a byte de codigo va a ser mas potente y eficiente. De todas formas, es verdad hay apoyo para strings en modulos de 16bits (pero tiene que ver con la recursividad y el uso del stack variable)... con nucleos de 8 se puede hacer tranquilamente observando donde se posiciona el código y cuantos registros auxiliares usamos.

Sobre la ultima Q, es mejor si usas ese micro tener un array y luego mandarlo con indice con direccionamiento indirecto o simplemente con un FOR Next. Si usas la EEPROM tenes que tener en cuenta los tiempos y si usas Flash, sabes que eso tiene un costo a la larga. yo usaria la RAM con ese MCU. y si es mucha data i2c externa memoria

Desconectado Palomino86

  • PIC16
  • ***
  • Mensajes: 180
Re: Desconocimiento sobre los Strings en Basic
« Respuesta #6 en: 16 de Agosto de 2010, 14:58:50 »
No se si les sea util pero aquí les dejo unas formas en las que se podría manipular cadenas en PBP.

Forma 1:

  SERIN2 PIC_DENS_1,N9600,500,SALTA_1,[wait("#"),DEC3 CAPH_1,DEC3 CAPL_1,DEC3 TEMP_ENT_1,DEC3 TEMP_DEC_1]

lo que se hace en esta instrucción es esperar una cadena con un inicio de paquete "#", la espera 500 mS y en caso de no recibirla salta al label "SALTA_1". Esto es para la recepción.

Forma 2:

  POS=5
  CAD[0]="S": CAD[1]="O": CAD[2]="N": CAD[3]=":": CAD[4]=" ": CAD[5]="("

  SEROUT2 TX_PRINTER,I9600,[STR CAD\(POS+1)]


lo que se hace en esta instrucción es insertar letras en una variable tipo Array, para después escribirlas en el puerto serie.

Forma 3:

  SEROUT2 TX_PC,I9600,["%",DEC5 LEC_ADC,DEC3 CORRIENTE_ENT,DEC2 CORRIENTE_DEC,DEC4 DENSIDAD2,DEC5 CAP_1,DEC2 TEMP_ENT_1, _
  DEC1 TEMP_DEC_1,DEC5 CAP_2,DEC2 TEMP_ENT_2,DEC1 TEMP_DEC_2,DEC5 CAP_3,DEC2 TEMP_ENT_3,DEC1 TEMP_DEC_3,DEC4 DEN_CON, _
  HEX2 TEMPDEN,CR]


lo que se hace en esta instrucción es enviar una cadena por el puerto serie con un inicio de paquete "%" para que sea identificado por otro micro o la pc. También podemos notar que usamos "DEC" dentro de la cadena, esto simplemente lo uso para delimitar el tamaño; pueden ser DEC (Datos decimales), HEX (Hexadecimales) o BIN (Binarios).

Espero les sea de utilidad o sea algo de lo que buscaban y tenían duda.
Lo que no me destruye, me fortalece


 

anything