TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: devaronaomar en 23 de Abril de 2010, 09:16:35
-
Hola, estoy trabajando en un proyecto con dos pic18f2550.
Uno recibe datos de un codificador de audio y los envía por el puerto serie al otro, que debe reenviarlos nuevamente a un decodificador.
En el receptor debería tener un buffer de memoria y he pensado en usar la memoria del pic para eso. Se me ha ocurrido crear un vector int vec[10080]
para que tenga 10080 celdas de 8 bits cada una, ya que así lo recibe por el puerto serie.
tengo esto
unsigned int vec[10080];
unsigned long i;
i=0;
while (i<10079)
{
vec[i]=getc();
}
...
...
// enviar por SDI vec[i]
De forma que se llene el vector con cada byte que entre pro el puerto rs232..
Pues bien, el asunto es que no llena el vector, la ejecución se detiene y sospecho que es por algo relacionado con el vector porque si en lugar de eso pongo una variable int8 normal entonces sí que sigue la ejecución.
alguien sabe como ayudarme? qué puede estar ocurriendo?
-
Dices que estas ocupando la EEprom del 2550 verdad, recuerda que su memoria es de 256 Bytes, puede que por esa escala este tu problema, la verdad no eh trabajado con la memoria interna del micro casi siempre uso externas
-
precisamente intento usar la ram reservando casi su totalidad para el vector, que debería tomar valores para cada getc() durante la ejecución
-
Lee la datasheet del micro. Le estás pidiendo 10kB de ram cuando este pic sólo tiene 2kB.
-
y por qué la compilar no salta error? si lo aumento más aún el compilador me dice que no hay suficiente ram, pero con esa cantidad me indica un 94% d ocupación
-
Si usas CCS puede ser uno de sus bugs.