Saludos a todos. Estoy realizando una libreria para una eeprom i2c. Tengo todas las funciones creadas y funcionando perfectamente exepto la de leer una cadena de bytes. No me explico que puede ser pero al simularlo solo me toma el primer caracter, y no es un problema de lectura propiamente dicho sino mas bien un problema de punteros o del propio compilador. Para simplificar la cuestion hago un ejemplo limpio sin las rutinas de eeprom propiamente dichas.
Todo esto esta compilado en Hi-Tech PICC 18 en un PIC18F4520.
void leer_cadena(char addr_mem, int pointer_addr, int *buffer, char cant_bytes)
{
for(char cnt = 0; cnt < cant_bytes; cnt++)
{
*buffer = cnt + 0x30; // convierto cnt en su valor pero en ascii para poder imprimir con printf %s como si fuera un string
buffer++;
}
return;
}
void main ()
{
char buffer[10];
leer_cadena(0xA0,0x00,&buf,10); // direccion de memoria, posicion en memoria, direccion de memoria del buffer, cantidad de bytes a leer
printf(">>Texto leido: %s",buf);
return;
}
En el simulador la salida seria la siguiente:
>>Texto: 0
cuando en realidad deberia ser
>>Texto: 0123456789
A alguien se le ocurre alguna idea con respecto al motivo de esta falla?
Muchas gracias!
Gonzalo