john120
Banned
- Joined
- Aug 13, 2011
- Messages
- 257
- Helped
- 11
- Reputation
- 22
- Reaction score
- 10
- Trophy points
- 1,298
- Activity points
- 0
hello,can anyone show me how I can solve the problem of my program I am using a big array of 191 values which will increase also;then I spitted in because the compile was saying that the data is too big;but now I am having an error saying:Not enough RAM for all variables
see my codes belowlz help
#include <16f877a.h>
#DEVICE ADC=10
#Device *=16
#fuses HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#include "lcd.c"
#define ARRAY_SIZE 95
#define ARRAY_SIZE 96
float voltsf,volts;
float value;
float value1;
int i;
unsigned int adc_value;
//int size;
int search;
float l;
int j[]={12359,
12348,
12319,
12318,
12303,
12301,
12280,
12264,
12261.2,
12245,
12230,
12230,
12210,
12200,
12199.99,
12199.96,
12179.99,
12179.38,
12169.99,
12159.99,
12151.29,
12149.99,
12120,
12099.99,
12098.99,
12094.99,
12097.99,
12084.99,
12069.99,
12049.99,
12024.99,
12014.99,
12009.99,
11999.99,
11994.99,
11989.99,
11980,
11968.99,
11968.99,
11959.99,
11954.99,
11949.99,
11944.99,
11939.99,
11934.99,
11929.99,
11899.99,
11880,
11869.99,
11840.99,
11832.39,
11822.29,
11811.99,
11809.99,
11799.99,
11749.49,
11738.49,
11736.49,
11734.99,
11724.99,
11714.99,
11699.99,
11684.99,
11674.99,
11659.99,
11644.99,
11629.99,
11599.97,
11584.99,
11574.99,
11564.99,
11549.99,
11525,
11514.99,
11504.99,
11498.7,
11439.99,
11429.99,
11417.99,
11434.99,
11425.99,
11414.99,
11403.99,
11395.99,
11385.59,
11374.99,
11364.99,
11354.99,
11344.99,
11334.99,
11299.98,
11284.99,
11274.99,
11249.98,
11234.99,
};
int p[]={11224.99,
11214.99,
11199.49,
11184.99,
11174.99,
11164.99,
11149.99,
11134.99,
11119.99,
11090,
11079.99,
11064.99,
11051.99,
11034.99,
11024.99,
11009.99,
10997.98,
10984.99,
10974.99,
10963.99,
10951.99,
10939.99,
10924.99,
10914.99,
10899.99,
10884.99,
10874.99,
10861.99,
10849.99,
10819.99,
10799.99,
10784.99,
10774.99,
10764.99,
10758.99,
10758.59,
10758.29,
10748.19,
10734.99,
10724.99,
10711.99,
10699.99,
10684.99,
10671.99,
10660.99,
10649.99,
10631.99,
10623.99,
10612.99,
10609.99,
10599.99,
10579.99,
10559.99,
10549.99,
10539.99,
10529.99,
10519.49,
10514.99,
10499.99,
10484.99,
10469.99,
10454.99,
10439.99,
10424.99,
10411.99,
10399.99,
10384.99,
10369.99,
10354.99,
10330,
10319.99,
10299.99,
10289.98,
10274.99,
10264.99,
10259.99,
10249.99,
10239.99,
10224.99,
10214.99,
10209.99,
10199.99,
10184.99,
10181.99,
10179.99,
10174.99,
10169.99,
10164.99,
10159.99,
10159.99,
10149.99,
10144.99,
10139.99,
10129.99,
10124.99,
10134.99,
};
int k[]={12349,
12341,
12340,
12315,
12300.9,
12289,
12260,
12262,
12248,
12230.01,
12229.99,
12209.99,
12200.01,
12199.99,
12179.95,
12180,
12179.39,
12170,
12160,
12151.3,
12150,
12120,
12100,
12099,
12095,
12098,
12085,
12070,
12050,
12025,
12015,
12010,
12000,
11995,
11990,
11985,
11970,
11969,
11960,
11955,
11950,
11945,
11940,
11935,
11930,
11900,
11885,
11870,
11841,
11832.4,
11822.3,
11812,
11810,
11800,
11790,
11738.5,
11736.5,
11735,
11725,
11715,
11700,
11685,
11675,
11660,
11645,
11630,
11599.99,
11585,
11575,
11565,
11550,
11535,
11515,
11505,
11498.8,
11440,
11430,
11418,
11415,
11426,
11415,
11404,
11396,
11385.6,
11375,
11365,
11355,
11345,
11335,
11299.99,
11285,
11275,
11275,
11235,
11225,
};
int m[]={11215,
11199.5,
11185,
11175,
11165,
11150,
11135,
11120,
11105,
11080,
11065,
11052,
11035,
11025,
11010,
10997.99,
10985,
10975,
10964,
10952,
10940,
10925,
10915,
10900,
10885,
10875,
10862,
10850,
10820,
10800,
10785,
10775,
10765,
10759,
10758.6,
10758.3,
10748.2,
10735,
10725,
10712,
10700,
10685,
10672,
10661,
10650,
10632,
10624,
10613,
10610,
10600,
10580,
10560,
10550,
10540,
10530,
10519.5,
10515,
10500,
10485,
10470,
10455,
10440,
10425,
10412,
10400,
10385,
10370,
10355,
10340,
10320,
10300,
10289.99,
10275,
10265,
10260,
10250,
10240,
10225,
10215,
10210,
10200,
10185,
10182,
10180,
10175,
10170,
10165,
10160,
10155,
10155,
10145,
10140,
10135,
10125,
10120,
10130,
};
int FindIndex(int *vals, int size, int search)
{
int i;
float l;
for ( i =0; i <size ; i++)
while((value1<= j)&&(k<=value1))
{
l=(i*0.1)+7;
lcd_gotoxy(11,1);
printf(lcd_putc,"\f%2.1f",l);
printf(lcd_putc,"\%%");
delay_ms(1500);
}
}
void main(void)
{
set_tris_c(0xff);
set_tris_b(0x00);
lcd_init();
delay_us(200);
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
adc_value = read_adc();
volts = ((float)(adc_value * 500)/1023.0);
delay_ms(400);
set_timer1(0);
setup_timer_1(t1_external | T1_DIV_BY_8);
delay_ms(250);
setup_timer_1(T1_DISABLED);
value=get_timer1();
value1=(value*32)/100;
jule:
lcd_gotoxy(11,4);
printf(lcd_putc,"\f%3.0f",value1);
delay_ms(1500);
lcd_gotoxy(11,1);
printf(lcd_putc,"\f%2.1f",l);
printf(lcd_putc,"\%%");
delay_ms(1500);
break;
while(true)
{
if((input(PIN_C5)==0))
{
delay_ms(20);
if(input(PIN_C5)==0)
{
delay_ms(150);
lcd_gotoxy(7,1);
printf(lcd_putc,"\fWait");
delay_ms(2500);
printf(lcd_putc,"\f%3.1f",volts);//this is temperature
printf(lcd_putc,"\°C");
delay_ms(2500);
FindIndex(k,ARRAY_SIZE,value1);
delay_ms(2500);
goto kagabo;
}
}
if(input(PIN_C4)==0)
{
if(input(PIN_C4)==0)
{
printf(lcd_putc,"\fSquare Wave");
delay_ms(2000);
}
}
if(input(PIN_C1)==0)
{
if(input(PIN_C1)==0)
{
printf(lcd_putc,"\fSine Wave");
delay_ms(2000);
}
}
}
}
see my codes belowlz help
#include <16f877a.h>
#DEVICE ADC=10
#Device *=16
#fuses HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#include "lcd.c"
#define ARRAY_SIZE 95
#define ARRAY_SIZE 96
float voltsf,volts;
float value;
float value1;
int i;
unsigned int adc_value;
//int size;
int search;
float l;
int j[]={12359,
12348,
12319,
12318,
12303,
12301,
12280,
12264,
12261.2,
12245,
12230,
12230,
12210,
12200,
12199.99,
12199.96,
12179.99,
12179.38,
12169.99,
12159.99,
12151.29,
12149.99,
12120,
12099.99,
12098.99,
12094.99,
12097.99,
12084.99,
12069.99,
12049.99,
12024.99,
12014.99,
12009.99,
11999.99,
11994.99,
11989.99,
11980,
11968.99,
11968.99,
11959.99,
11954.99,
11949.99,
11944.99,
11939.99,
11934.99,
11929.99,
11899.99,
11880,
11869.99,
11840.99,
11832.39,
11822.29,
11811.99,
11809.99,
11799.99,
11749.49,
11738.49,
11736.49,
11734.99,
11724.99,
11714.99,
11699.99,
11684.99,
11674.99,
11659.99,
11644.99,
11629.99,
11599.97,
11584.99,
11574.99,
11564.99,
11549.99,
11525,
11514.99,
11504.99,
11498.7,
11439.99,
11429.99,
11417.99,
11434.99,
11425.99,
11414.99,
11403.99,
11395.99,
11385.59,
11374.99,
11364.99,
11354.99,
11344.99,
11334.99,
11299.98,
11284.99,
11274.99,
11249.98,
11234.99,
};
int p[]={11224.99,
11214.99,
11199.49,
11184.99,
11174.99,
11164.99,
11149.99,
11134.99,
11119.99,
11090,
11079.99,
11064.99,
11051.99,
11034.99,
11024.99,
11009.99,
10997.98,
10984.99,
10974.99,
10963.99,
10951.99,
10939.99,
10924.99,
10914.99,
10899.99,
10884.99,
10874.99,
10861.99,
10849.99,
10819.99,
10799.99,
10784.99,
10774.99,
10764.99,
10758.99,
10758.59,
10758.29,
10748.19,
10734.99,
10724.99,
10711.99,
10699.99,
10684.99,
10671.99,
10660.99,
10649.99,
10631.99,
10623.99,
10612.99,
10609.99,
10599.99,
10579.99,
10559.99,
10549.99,
10539.99,
10529.99,
10519.49,
10514.99,
10499.99,
10484.99,
10469.99,
10454.99,
10439.99,
10424.99,
10411.99,
10399.99,
10384.99,
10369.99,
10354.99,
10330,
10319.99,
10299.99,
10289.98,
10274.99,
10264.99,
10259.99,
10249.99,
10239.99,
10224.99,
10214.99,
10209.99,
10199.99,
10184.99,
10181.99,
10179.99,
10174.99,
10169.99,
10164.99,
10159.99,
10159.99,
10149.99,
10144.99,
10139.99,
10129.99,
10124.99,
10134.99,
};
int k[]={12349,
12341,
12340,
12315,
12300.9,
12289,
12260,
12262,
12248,
12230.01,
12229.99,
12209.99,
12200.01,
12199.99,
12179.95,
12180,
12179.39,
12170,
12160,
12151.3,
12150,
12120,
12100,
12099,
12095,
12098,
12085,
12070,
12050,
12025,
12015,
12010,
12000,
11995,
11990,
11985,
11970,
11969,
11960,
11955,
11950,
11945,
11940,
11935,
11930,
11900,
11885,
11870,
11841,
11832.4,
11822.3,
11812,
11810,
11800,
11790,
11738.5,
11736.5,
11735,
11725,
11715,
11700,
11685,
11675,
11660,
11645,
11630,
11599.99,
11585,
11575,
11565,
11550,
11535,
11515,
11505,
11498.8,
11440,
11430,
11418,
11415,
11426,
11415,
11404,
11396,
11385.6,
11375,
11365,
11355,
11345,
11335,
11299.99,
11285,
11275,
11275,
11235,
11225,
};
int m[]={11215,
11199.5,
11185,
11175,
11165,
11150,
11135,
11120,
11105,
11080,
11065,
11052,
11035,
11025,
11010,
10997.99,
10985,
10975,
10964,
10952,
10940,
10925,
10915,
10900,
10885,
10875,
10862,
10850,
10820,
10800,
10785,
10775,
10765,
10759,
10758.6,
10758.3,
10748.2,
10735,
10725,
10712,
10700,
10685,
10672,
10661,
10650,
10632,
10624,
10613,
10610,
10600,
10580,
10560,
10550,
10540,
10530,
10519.5,
10515,
10500,
10485,
10470,
10455,
10440,
10425,
10412,
10400,
10385,
10370,
10355,
10340,
10320,
10300,
10289.99,
10275,
10265,
10260,
10250,
10240,
10225,
10215,
10210,
10200,
10185,
10182,
10180,
10175,
10170,
10165,
10160,
10155,
10155,
10145,
10140,
10135,
10125,
10120,
10130,
};
int FindIndex(int *vals, int size, int search)
{
int i;
float l;
for ( i =0; i <size ; i++)
while((value1<= j)&&(k<=value1))
{
l=(i*0.1)+7;
lcd_gotoxy(11,1);
printf(lcd_putc,"\f%2.1f",l);
printf(lcd_putc,"\%%");
delay_ms(1500);
}
}
void main(void)
{
set_tris_c(0xff);
set_tris_b(0x00);
lcd_init();
delay_us(200);
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
adc_value = read_adc();
volts = ((float)(adc_value * 500)/1023.0);
delay_ms(400);
set_timer1(0);
setup_timer_1(t1_external | T1_DIV_BY_8);
delay_ms(250);
setup_timer_1(T1_DISABLED);
value=get_timer1();
value1=(value*32)/100;
jule:
lcd_gotoxy(11,4);
printf(lcd_putc,"\f%3.0f",value1);
delay_ms(1500);
lcd_gotoxy(11,1);
printf(lcd_putc,"\f%2.1f",l);
printf(lcd_putc,"\%%");
delay_ms(1500);
break;
while(true)
{
if((input(PIN_C5)==0))
{
delay_ms(20);
if(input(PIN_C5)==0)
{
delay_ms(150);
lcd_gotoxy(7,1);
printf(lcd_putc,"\fWait");
delay_ms(2500);
printf(lcd_putc,"\f%3.1f",volts);//this is temperature
printf(lcd_putc,"\°C");
delay_ms(2500);
FindIndex(k,ARRAY_SIZE,value1);
delay_ms(2500);
goto kagabo;
}
}
if(input(PIN_C4)==0)
{
if(input(PIN_C4)==0)
{
printf(lcd_putc,"\fSquare Wave");
delay_ms(2000);
}
}
if(input(PIN_C1)==0)
{
if(input(PIN_C1)==0)
{
printf(lcd_putc,"\fSine Wave");
delay_ms(2000);
}
}
}
}