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.