Hola,tengo este programa que consiste en mostrar los caracteres del código morse cada vez que se presiona un botón
El problema surge cuando lo compilo,me sale este error:"Data item too big",y apunta a la linea donde se define el tamaño de la struct.
Mi duda es si es problema de la memoria, y si se puede hacer de otra manera un poco mas eficiente, como guardar estos dato en la eeprom para que no ocupe lugar en la memoria del programa,gracias!! ...
Código:
#include <16F886.h>
#fuses XT,NOMCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG
#use delay(clock=4000000)
#include "lcd.c"
#use fast_io(A)
#use fast_io(B)
#use fast_io(C)
#byte PORTA=5
#byte PORTB=6
#byte PORTC=7
#bit Boton0=PORTB.4
struct{
char ascii;
char longitud;
char codigo[7];
}tabla[49]={ {\'A\',\'2\',"01"}
{\'B\',\'4\',"1000"}
{\'C\',\'4\',"1010"}
{\'D\',\'3\',"100"}
{\'E\',\'1\',"0"}
{\'F\',\'4\',"0010"}
{\'G\',\'3\',"110"}
{\'H\',\'4\',"0000"}
{\'I\',\'2\',"00"}
{\'J\',\'4\',"0111"}
{\'K\',\'3\',"101"}
{\'L\',\'4\',"0100"}
{\'M\',\'2\',"11"}
{\'N\',\'2\',"10"}
{\'O\',\'3\',"111"}
{\'P\',\'4\',"0110"}
{\'Q\',\'4\',"1101"}
{\'R\',\'3\',"010"}
{\'S\',\'3\',"000"}
{\'T\',\'1\',"1"}
{\'U\',\'3\',"001"}
{\'V\',\'4\',"0001"}
{\'W\',\'3\',"011"}
{\'X\',\'4\',"1001"}
{\'Y\',\'4\',"1011"}
{\'Z\',\'4\',"1100"}
{\'1\',\'5\',"01111"}
{\'2\',\'5\',"00111"}
{\'3\',\'5\',"00011"}
{\'4\',\'5\',"00001"}
{\'5\',\'5\',"00000"}
{\'6\',\'5\',"10000"}
{\'7\',\'5\',"11000"}
{\'8\',\'5\',"11100"}
{\'9\',\'5\',"11110"}
{\'0\',\'5\',"11111"}
{33,\'6\',"101011"}
{34,\'6\',"010010"}
{39,\'6\',"011110"}
{40,\'6\',"101101"}
{41,\'6\',"101101"}
{44,\'6\',"110011"}
{45,\'6\',"100001"}
{46,\'6\',"010101"}
{47,\'5\',"10010"}
{58,\'6\',"111000"}
{59,\'6\',"101010"}
{61,\'5\',"10001"}
{63,\'6\',"001100"}};
void main(){
int i=0;
lcd_init();
set_tris_b(0xFF);
set_tris_a(0x00);
port_b_pullups(1);
delay_ms(500);
lcd_putc ("\\ Listo...");
while(1){
if(Boton==0){
printf(lcd_putc,"ASCII LONGITUD CODIGO\\n\\t");
printf(lcd_putc,"%c,%c,%c", tabla[i].ascii,tabla[i].longitud,tabla[i].codigo);
i++;
if(i==49) i=0;
}
}
}
El problema surge cuando lo compilo,me sale este error:"Data item too big",y apunta a la linea donde se define el tamaño de la struct.
Mi duda es si es problema de la memoria, y si se puede hacer de otra manera un poco mas eficiente, como guardar estos dato en la eeprom para que no ocupe lugar en la memoria del programa,gracias!! ...
Última edición por un moderador: