john120
Banned
- Joined
- Aug 13, 2011
- Messages
- 257
- Helped
- 11
- Reputation
- 22
- Reaction score
- 10
- Trophy points
- 1,298
- Activity points
- 0
Hello every body ,can you plz help me to solve the problem of switch in the following codes;the first if condition does nt work but the rest operate very well for
the second is for displaying:Sine
The third displays :Square;see the codes below
#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 191
//#define ARRAY_SIZE 250
#define status 0
#define INPUT_DELAY 150 //ms
float value,p1,p2,p3;
float value1,v1,v2,v3;
int i,found;
float l;
const float k[]={
12349,12341,12319,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,12094.99,12085,12070,12050,12025,
12015,12010,12000,11995,11990,11985,11970,11968.99,11960,11955,
11950,11945,11940,11935,11930,11900,11885,11870,11841,11832.4};
const float t[]={
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,11274.99,11274,11235,11225,11215,11199.5,11185,11175,11165};
const float u[]={
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};
const float s[]={
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,
};
//one array divided into 3 arrays
const float j[]={
12359,12348,12340,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,12098,12097.99,12084.99,12069.99,12049.99,
12024.99,12014.99,12009.99,11999.99,11994.99,11989.99,11980,11969,11968.99,11959.99,
11954.99,11949.99,11944.99,11939.99,11934.99,11929.99,11899.99,11880,11869.99,11840.99};
const float m[]={
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,11275,11249.98,11234.99,11224.99,11214.99,11199.49,11184.99,11174.99};
//11274.99
const float n[]={
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};
const float p[]={
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,
};
void main()
{
set_tris_d(0x00);
set_tris_a(0xff);
set_tris_c(0x00);
lcd_init();
delay_us(200);
output_high(PIN_C4);
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(ALL_ANALOG);
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)-59528)/100;
while(1)
{
set_adc_channel(0);
delay_us(20);
v1=read_adc();
p1 = ((v1 * 5)/1023.0);
set_adc_channel(1);
delay_us(20);
v2=read_adc();
p2=((v2 * 5)/1023.0);
set_adc_channel(2);
delay_us(20);
v3=read_adc();
p3=((v3 * 5)/1023.0);
lcd_gotoxy(1,1);
printf(lcd_putc,"\f%f",p3);
//delay_ms(1000);
lcd_gotoxy(6,2);
printf(lcd_putc,"\%f",p1);
lcd_gotoxy(6,1);
//delay_ms(1000);
printf(lcd_putc,"\%f",p2);
delay_ms(1000);
printf(lcd_putc,"\fConnect Probe");
delay_ms(1500);
continue;
while((p3<=3.9)&&(p3>=0))
{
if((value1<= j)&&(k<=value1))
{
for ( i =0,found=-1;i <ARRAY_SIZE ; i++)
l=(0.1*i)+8.0;
printf(lcd_putc,"\f%2.1f", l);
printf(lcd_putc,"\%%");
delay_ms(3500);
}
else if((value1<= m)&&(t<=value1))
{
for ( i =0,found=-1;i <ARRAY_SIZE ; i++)
l=(0.1*i)+13.0;
lcd_gotoxy(4,1);
printf(lcd_putc,"\f%2.1f", l);
printf(lcd_putc,"\%%");
delay_ms(3500);
output_high(PIN_C4);
}
else if((value1<= n)&&(u<=value1))
{
for ( i =0,found=-1;i <ARRAY_SIZE ; i++)
l=(0.1*i)+18.0;
delay_ms(15);
lcd_gotoxy(4,1);
printf(lcd_putc,"\f%2.1f", l);
printf(lcd_putc,"\%%");
delay_ms(3500);
output_high(PIN_C4);
}
else if((value1<= p)&&(s<=value1))
{
for ( i =0,found=-1;i <ARRAY_SIZE ; i++)
l=(0.1*i)+23.0;
delay_ms(15);
lcd_gotoxy(4,1);
printf(lcd_putc,"\f%2.1f", l);
printf(lcd_putc,"\%%");
delay_ms(3500);
output_high(PIN_C4);
}
}
while((p2<=3.9)&&(p2>=0))
{
delay_ms(100);
printf(lcd_putc, "\fSquare");
delay_ms(2000);
}
while((p1<=3.9)&&(p1>=0))
{
delay_ms(100);
printf(lcd_putc, "\fSine");
delay_ms(2000);
}
}
}
Help me to see why the first button is not working.As you see I am using ccs and PIC16F877A
Thanks
the second is for displaying:Sine
The third displays :Square;see the codes below
#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 191
//#define ARRAY_SIZE 250
#define status 0
#define INPUT_DELAY 150 //ms
float value,p1,p2,p3;
float value1,v1,v2,v3;
int i,found;
float l;
const float k[]={
12349,12341,12319,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,12094.99,12085,12070,12050,12025,
12015,12010,12000,11995,11990,11985,11970,11968.99,11960,11955,
11950,11945,11940,11935,11930,11900,11885,11870,11841,11832.4};
const float t[]={
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,11274.99,11274,11235,11225,11215,11199.5,11185,11175,11165};
const float u[]={
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};
const float s[]={
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,
};
//one array divided into 3 arrays
const float j[]={
12359,12348,12340,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,12098,12097.99,12084.99,12069.99,12049.99,
12024.99,12014.99,12009.99,11999.99,11994.99,11989.99,11980,11969,11968.99,11959.99,
11954.99,11949.99,11944.99,11939.99,11934.99,11929.99,11899.99,11880,11869.99,11840.99};
const float m[]={
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,11275,11249.98,11234.99,11224.99,11214.99,11199.49,11184.99,11174.99};
//11274.99
const float n[]={
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};
const float p[]={
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,
};
void main()
{
set_tris_d(0x00);
set_tris_a(0xff);
set_tris_c(0x00);
lcd_init();
delay_us(200);
output_high(PIN_C4);
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(ALL_ANALOG);
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)-59528)/100;
while(1)
{
set_adc_channel(0);
delay_us(20);
v1=read_adc();
p1 = ((v1 * 5)/1023.0);
set_adc_channel(1);
delay_us(20);
v2=read_adc();
p2=((v2 * 5)/1023.0);
set_adc_channel(2);
delay_us(20);
v3=read_adc();
p3=((v3 * 5)/1023.0);
lcd_gotoxy(1,1);
printf(lcd_putc,"\f%f",p3);
//delay_ms(1000);
lcd_gotoxy(6,2);
printf(lcd_putc,"\%f",p1);
lcd_gotoxy(6,1);
//delay_ms(1000);
printf(lcd_putc,"\%f",p2);
delay_ms(1000);
printf(lcd_putc,"\fConnect Probe");
delay_ms(1500);
continue;
while((p3<=3.9)&&(p3>=0))
{
if((value1<= j)&&(k<=value1))
{
for ( i =0,found=-1;i <ARRAY_SIZE ; i++)
l=(0.1*i)+8.0;
printf(lcd_putc,"\f%2.1f", l);
printf(lcd_putc,"\%%");
delay_ms(3500);
}
else if((value1<= m)&&(t<=value1))
{
for ( i =0,found=-1;i <ARRAY_SIZE ; i++)
l=(0.1*i)+13.0;
lcd_gotoxy(4,1);
printf(lcd_putc,"\f%2.1f", l);
printf(lcd_putc,"\%%");
delay_ms(3500);
output_high(PIN_C4);
}
else if((value1<= n)&&(u<=value1))
{
for ( i =0,found=-1;i <ARRAY_SIZE ; i++)
l=(0.1*i)+18.0;
delay_ms(15);
lcd_gotoxy(4,1);
printf(lcd_putc,"\f%2.1f", l);
printf(lcd_putc,"\%%");
delay_ms(3500);
output_high(PIN_C4);
}
else if((value1<= p)&&(s<=value1))
{
for ( i =0,found=-1;i <ARRAY_SIZE ; i++)
l=(0.1*i)+23.0;
delay_ms(15);
lcd_gotoxy(4,1);
printf(lcd_putc,"\f%2.1f", l);
printf(lcd_putc,"\%%");
delay_ms(3500);
output_high(PIN_C4);
}
}
while((p2<=3.9)&&(p2>=0))
{
delay_ms(100);
printf(lcd_putc, "\fSquare");
delay_ms(2000);
}
while((p1<=3.9)&&(p1>=0))
{
delay_ms(100);
printf(lcd_putc, "\fSine");
delay_ms(2000);
}
}
}
Help me to see why the first button is not working.As you see I am using ccs and PIC16F877A
Thanks
Last edited: