fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

MPLAB v8 y C18
 
Avisos
Vaciar todo

MPLAB v8 y C18

6 Respuestas
3 Usuarios
0 Reactions
2,853 Visitas
ranganok
Respuestas: 3875
Topic starter
(@ranganok)
Ardero
Registrado: hace 19 años

Hola,

Estoy empezando a usar el C18 para programar en C los PICs de la serie 18F, he empezado por un sencillo programa tipo "Hola Mundo", sin embargo la simulación me devuelve un error bastante extraño:
CORE-E0002: Stack under flow error occurred from instruction at 0x00006e
Lo devuelve con el RETURN de la función delay().

El programa es el siguiente:
#include <p18f452>
#pragma config WDT = OFF

void delay(void)
{
unsigned int i;
for (i = 0; i < 10000 ; i++);
}

void main (void)
{
TRISB = 0;
while (1)
{
/* Reset the LEDs */
PORTB = 0;
/* Delay so human eye can see change */
delay();
/* Light the LEDs */
PORTB = 0x5A;
/* Delay so human eye can see change */
delay();
}
}

Alguna idea??

S2

Ranganok Schahzaman

Responder
5 respuestas
luison
Respuestas: 495
(@luison)
Reputable Member
Registrado: hace 17 años

Ni puñetera idea, a priori parece estar bien. Yo para probar, definiría 'i' en el main y se lo pasaría a delay (ya que eso de que el stack tenga "overflow" es raro). y también pondría el for del delay sólo hasta 255, también por si las moscas 😉

probando, probando a veces son las cosas más estúpidas lo que hacen fallar...

PS: también pondría al final del delay "return;"
jur! es que ahora no tengo un compilador, sino ya te ayudaría más 🙁

Responder
boops
Respuestas: 1813
(@boops)
Ardero
Registrado: hace 19 años

No recuerdo donde pero una vez lei que los for eran "poco agradecidos" con los micros... ¿por que no "traduces" el for por un bucle do-while o if?

Responder
ranganok
Respuestas: 3875
Topic starter
(@ranganok)
Ardero
Registrado: hace 19 años

He estado mirando y el error estaba en el RETURN de la función que me salía de la pila.

El problema era que el MPLINK no me ordenaba bien los archivos, así que he vuelto a reinstalar el C18 y ya funciona correctamente.

S2

Ranganok Schahzaman

Responder
luison
Respuestas: 495
(@luison)
Reputable Member
Registrado: hace 17 años

He estado mirando y el error estaba en el RETURN de la función que me salía de la pila.

El problema era que el MPLINK no me ordenaba bien los archivos, así que he vuelto a reinstalar el C18 y ya funciona correctamente.

S2

Ranganok Schahzaman

jejeje, pues al final acerté 😀 era el RETURN.

Responder
Página 1 / 2
Compartir: