ImagenImagenImagenImagen
Hazte Socio (El Foro siempre Gratis)
Paga con Tarjetas+ Info www.arde.cc/socios

ayuda dividir un string usando pic16f887

Si tu lenguaje no se engloba en los anteriores, postea aquí tus temas

Moderador: Junta Directiva

Responder
lorenzorenzzo
Mensajes: 8
Registrado: Jue Ene 30, 2014 6:17 am
Nombre: lorenzo

ayuda dividir un string usando pic16f887

Mensaje por lorenzorenzzo » Mar Abr 08, 2014 2:01 am

El pic se esta comunicando con la computadora usando para ello el puerto serie
el dato que llega al pic es 50101 necesito dividirlo para después guardarlo de la siguiente manera:
A=50
B=10
c=1



Avatar de Usuario
Sphinx
Usuario Experto
Usuario Experto
Mensajes: 639
Registrado: Jue Abr 03, 2008 4:45 pm
Ubicación: Madrid
Contactar:

Re: ayuda dividir un string usando pic16f887

Mensaje por Sphinx » Mar Abr 08, 2014 3:50 pm

Para que te podamos ayudar, faltan datos.
Por ejemplo, ¿En qué lenguaje estás programando en ambos extremos ?
¿Podemos ver ese código fuente ?

Slds, Sphinx
Tanto si piensas que puedes, como si piensas que no puedes, estás en lo cierto.- Henry Ford
>> Mis experiencias y proyectos robóticos: http://linuxdroids.com

lorenzorenzzo
Mensajes: 8
Registrado: Jue Ene 30, 2014 6:17 am
Nombre: lorenzo

Re: ayuda dividir un string usando pic16f887

Mensaje por lorenzorenzzo » Mar Abr 08, 2014 3:58 pm

estoy programando en pic c
el dato lo tomo de la siguiente manera TOTAL=getchar();
en esta parte lo tendría que dividir para poder guardarlo en la variable correspondiente

Avatar de Usuario
Sphinx
Usuario Experto
Usuario Experto
Mensajes: 639
Registrado: Jue Abr 03, 2008 4:45 pm
Ubicación: Madrid
Contactar:

Re: ayuda dividir un string usando pic16f887

Mensaje por Sphinx » Mar Abr 08, 2014 4:09 pm

Y qué formato es el que le das a esa cadena?
La cadena es "50101", es decir, un caracter 5, un caracter 0, etc...?
O un byte [50], otro byte [10], otro byte [10] ?
Tanto si piensas que puedes, como si piensas que no puedes, estás en lo cierto.- Henry Ford
>> Mis experiencias y proyectos robóticos: http://linuxdroids.com

lorenzorenzzo
Mensajes: 8
Registrado: Jue Ene 30, 2014 6:17 am
Nombre: lorenzo

Re: ayuda dividir un string usando pic16f887

Mensaje por lorenzorenzzo » Mar Abr 08, 2014 4:32 pm

los datos que llegan son char

Código: Seleccionar todo

void main()
{
char A;
char B;
char C;
char TOTAL;
while(true){
TOTAL=getchar();
A=
B=
C=
if(A='50'){
//hace una secuencia de leds
}
if(B='10'){
//realiza una secuencia de leds
}
if(C='1'){
//realiza una secuencia de leds
}
}
}

Avatar de Usuario
Sphinx
Usuario Experto
Usuario Experto
Mensajes: 639
Registrado: Jue Abr 03, 2008 4:45 pm
Ubicación: Madrid
Contactar:

Re: ayuda dividir un string usando pic16f887

Mensaje por Sphinx » Mar Abr 08, 2014 4:51 pm

getchar() solo te va a coger un caracter.
No sé si dispones de la funcion gets() , pero sería lo conveniente en tu caso, porque almacena caracteres hasta el caracter de End of Line (EOL). Entonces:

Código: Seleccionar todo

char A;
char *TOTAL; 
//o también : char TOTAL[256]; es decir un string lo suficientemente largo como para albergar lo que esperas.
...
...
gets(TOTAL);
// Funciones de manipulación de caracteres individuales: 
A = TOTAL[0]; // Eso si A solo va a contener un caracter.
B= TOTAL[1]; // Idem.
Echale un vistazo a las funciones de manipulación de cadenas stdio.h

Slds, Sphinx.
Tanto si piensas que puedes, como si piensas que no puedes, estás en lo cierto.- Henry Ford
>> Mis experiencias y proyectos robóticos: http://linuxdroids.com

lorenzorenzzo
Mensajes: 8
Registrado: Jue Ene 30, 2014 6:17 am
Nombre: lorenzo

Re: ayuda dividir un string usando pic16f887

Mensaje por lorenzorenzzo » Mar Abr 08, 2014 6:41 pm

muchas gracias
se podrian tomar dos caracteres haciendo lo siguiente?

Código: Seleccionar todo

gets(TOTAL);
A = TOTAL[0,1]; 
B = TOTAL[2,3]; 

Avatar de Usuario
Sphinx
Usuario Experto
Usuario Experto
Mensajes: 639
Registrado: Jue Abr 03, 2008 4:45 pm
Ubicación: Madrid
Contactar:

Re: ayuda dividir un string usando pic16f887

Mensaje por Sphinx » Mar Abr 08, 2014 7:31 pm

Obviamente no. Si has declarado A y B como char, pues SÓLO pueden contener 1 char.
Si las declaras como:

Código: Seleccionar todo

char A[2];
char B[2];
...pues contendrán 2 caracteres cada una.

A la hora de copiar n caracteres del string TOTAL a A o a B, tienes que utilizar alguna función como strcpy() o strncpy(). Míralas en cstring

Intenta mirar a fondo algún manual de C / C++, porque estas preguntas son cuestiones bastante básicas.

Slds,
SPhinx.
Tanto si piensas que puedes, como si piensas que no puedes, estás en lo cierto.- Henry Ford
>> Mis experiencias y proyectos robóticos: http://linuxdroids.com

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado