TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: RS232 en 04 de Agosto de 2006, 19:06:25

Título: problema con vector para un onda SENO en PIC C
Publicado por: RS232 en 04 de Agosto de 2006, 19:06:25
hola...


la idea del programa es tener un vector llamdo SENO_FREC_1 para alamacenar los valores de una onda sinusoidal para un periodo completo, para que de tal manera si se cambia la frecuencia de la señal cambie los valores del vector SENO_FREC_1 siempre para un periodo...

en el caso del ensamblador se podia usar ORG para cambiar de pagina y reserva las posiciones para la tabla....
pero en el pic c cuando  coloco la siguiente instruccion

byte SENO_FREC_1[80];

sale un mensaje de error "no enough RAM for all variables"

como hacer para colocar el vector en la direccion A0H al EFH
estoy utilizando un PIC16F877
no llego a entender porque cuando se define como:

byte CONST SENO_FREC_1[80];
no sale ningun mensaje de error...
no ocupan el mismo espacio en memoria???

gracias por su ayuda
saludos..
Título: Re: problema con vector para un onda SENO en PIC C
Publicado por: Modulay en 04 de Agosto de 2006, 20:11:48
Dependiendo de la versión del compilador,te deja crear arrays hasta un cierto tamaño máximo,aún siendo inferior a la capicdad de ram del micro.
Yo lo he compilado sin problema con la versión 3.249.
Al declrar tu array como constante,lo estás alojando en la memoria de programa y no en ram,por lo que es normal que por ahí si te deje crear variables de tamaño considerable.Prueba a buscarte una versión reciente de CCS (si es que estás usando una antigua) y vuelve a probar.
Para alojar tu array donde necesitas sería de la siguiente manera:

#ORG 0xA0,0xEF
byte SENO_FREC_1[80];

Saludos