Hola muy buenas noches , tengo un problema con mi codigo , me explico quiero hacer arrancar una matriz led 8x8 con pic 16f887a y un ic 74hc595 y sale pero a medias , al momento de simularlo en proteus me sale este mensaje :
[PIC16 CORE] PC=0x0078. Stack overflow executing CALL instruction. [U1]
no puedo visualizar el erro en mi programacion pido su ayuda y muchas gracias
#INCLUDE<16F887.H>
#FUSES HS,NOWDT,NOPROTECT,NOPUT,MCLR
#USE DELAY(CLOCK=20M)
#USE STANDARD_IO(D)
#USE STANDARD_IO(B)
#DEFINE LARGO 38
#DEFINE DATA PIN_D0
#DEFINE CLOCK PIN_D1
#DEFINE LATCH PIN_D2
VOID F74595_INIT()
{
output_bit(DATA,1);
output_bit(CLOCK,1);
output_bit(DATA,0);
}
VOID F74595_CLOCK()
{
output_bit(CLOCK,1);
output_bit(CLOCK,0);
output_bit(LATCH,1);
output_bit(LATCH,0);
}
CONST INT TABLA[LARGO]={0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0x67,0XA3,0X49,0XA0,0XA0,0X49,0XA3,0X67,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF};
VOID MAIN()
{
INT I,J,K;
WHILE(TRUE)
{
FOR(I=0;I<LARGO+16;I++)
{
FOR(K=0;K<24;K++)
{
F74595_INIT();
FOR(J=0;J<16;J++)
{
F74595_CLOCK();
OUTPUT_B(TABLA[J+I]);
delay_US(1);
}
}
}
}
}
[PIC16 CORE] PC=0x0078. Stack overflow executing CALL instruction. [U1]
no puedo visualizar el erro en mi programacion pido su ayuda y muchas gracias
#INCLUDE<16F887.H>
#FUSES HS,NOWDT,NOPROTECT,NOPUT,MCLR
#USE DELAY(CLOCK=20M)
#USE STANDARD_IO(D)
#USE STANDARD_IO(B)
#DEFINE LARGO 38
#DEFINE DATA PIN_D0
#DEFINE CLOCK PIN_D1
#DEFINE LATCH PIN_D2
VOID F74595_INIT()
{
output_bit(DATA,1);
output_bit(CLOCK,1);
output_bit(DATA,0);
}
VOID F74595_CLOCK()
{
output_bit(CLOCK,1);
output_bit(CLOCK,0);
output_bit(LATCH,1);
output_bit(LATCH,0);
}
CONST INT TABLA[LARGO]={0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0x67,0XA3,0X49,0XA0,0XA0,0X49,0XA3,0X67,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF};
VOID MAIN()
{
INT I,J,K;
WHILE(TRUE)
{
FOR(I=0;I<LARGO+16;I++)
{
FOR(K=0;K<24;K++)
{
F74595_INIT();
FOR(J=0;J<16;J++)
{
F74595_CLOCK();
OUTPUT_B(TABLA[J+I]);
delay_US(1);
}
}
}
}
}