Hola a tod@s.
Estoy teniendo un problema en la compilacion de un programa con el pic 16f886, a ver si alguien me puede ayudar, o explicar porqué me está ocurriendo.
Necesito un vector de char o int (mejor char por memoria) de unos 300 elementos. El problema es que no me deja declarar un vector de mas de 96 elementos. Me ocurre lo siguiente:
#define MAX_ANG 97
// Variables globales
char angulos[MAX_ANG];
#include <htc.h>
#include <math.h>
__CONFIG(FOSC_INTRC_CLKOUT & WDTE_OFF & PWRTE_OFF & MCLRE_ON & CP_OFF & CPD_OFF & BOREN_OFF & IESO_OFF & FCMEN_OFF & LVP_OFF & DEBUG_OFF & BOR4V_BOR40V & WRT_OFF);
void main()
{
for(int i = 0; i<MAX_ANG; i++)
{
angulos[i]=80;
}
} /*main*/
Error [1250] \main.c; 5. could not find space (97 bytes) for variable _angulos
Como se puede ver, con 97 elementos me devuelve error de espacio, sin embargo, modificando el tamaño a 96 compila correctamente y me indica un uso de espacio de datos de 27%
Memory Summary:
Program space used 2Fh ( 47) of 2000h words ( 0.6%)
Data space used 64h ( 100) of 170h bytes ( 27.2%)
EEPROM space used 0h ( 0) of 100h bytes ( 0.0%)
Configuration bits used 1h ( 1) of 2h words ( 50.0%)
ID Location space used 0h ( 0) of 4h bytes ( 0.0%)
De hecho, si declaro 2 vectores de 96 elementos, tampoco tengo ningun problema y compila correctamente con un uso de 53%
#define MAX_ANG 96
// Variables globales
char angulos[MAX_ANG];
char angulos2[MAX_ANG];
#include <htc.h>
#include <math.h>
__CONFIG(FOSC_INTRC_CLKOUT & WDTE_OFF & PWRTE_OFF & MCLRE_ON & CP_OFF & CPD_OFF & BOREN_OFF & IESO_OFF & FCMEN_OFF & LVP_OFF & DEBUG_OFF & BOR4V_BOR40V & WRT_OFF);
void main()
{
for(int i = 0; i<MAX_ANG; i++)
{
angulos[i]=80;
angulos2[i]=80;
}
} /*main*/
Memory Summary:
Program space used 3Ch ( 60) of 2000h words ( 0.7%)
Data space used C4h ( 196) of 170h bytes ( 53.3%)
EEPROM space used 0h ( 0) of 100h bytes ( 0.0%)
Configuration bits used 1h ( 1) of 2h words ( 50.0%)
ID Location space used 0h ( 0) of 4h bytes ( 0.0%)
Alguien me puede explicar porqué motivo no puedo usar un vector de mas de 96 elementos si usando 2 vectores tengo un 50%?
muchas gracias
un saludo
Edito:
Utilizo MPLAB version 8.63 con el compilador PIC16 version 9.81 PRO version (Evaluacion)