Como puedo testear eso?
Edito: No sale de ella, ya lo he probado.
Puedes explicarme estas dos lineas:
*palabra= CaracterLeido;
*palabra++;
Muchas gracias de nuevo.
Sí, ayer se me pasó explicarte eso y también el porque había probado con el caracter '\f' en su momento....
Primero te explico lo de los caracteres que me es más fácil
Cuando estaba haciendo pruebas con el terminal virtual de proteus noté que al poner en mi programa "putch(''\n);" no hacía nada, entonces pensé que había algún error y empecé a probar distintas cosas hasta que con el '\f' paració funcionar pero luego -recién en la noche- noté que el caracter '\f' servía para borrar la pantalla del terminal virtual. Después de eso debugge el programa y vi que cuando ponía '\r' enviaba el dato 13 (0x0d) y al poner '\n' envía el dato 10 (0x0a).
Ahora lo más complejo, espero que pueda hacerme entender
Es algo bastante complejo porque está relacionado con el uso de punteros. Cuando se trabaja con punteros se puede hacer uso de & o *. & se usa para referirse a una dirección de memoria y * se para referirse al un dato. A ver si con un ejemplo me explico mejor.
volatile char * puntero; // declaro una variable del tipo puntero
puntero = &PORTB; //hago que el puntero apunte a la direccion del puerto B
*puntero = 255; // esto cambia el dato que se encuentra en la direccion a la cual apunta el puntero
A efectos prácticos, el "*puntero = 255;" pone a 255 el puerto B. El puntero apunta al puerto B, y al cambiar el dato de la dirección apuntada por el puntero, cambiamos el dato del puerto B.
Ahora vamos al caso de mi función.
con "*palabra = CaracterLeido" hago que el dato apuntado por el puntero sea el caracter leído
y con "*palabra++" incremento el índice del puntero.
Esto es equivalente a, en un array ir aumentando el indice.