Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

find index of any number in a given array for PIC programming in ccs c

Status
Not open for further replies.

john120

Banned
Full Member level 5
Joined
Aug 13, 2011
Messages
257
Helped
11
Reputation
22
Reaction score
10
Trophy points
1,298
Visit site
Activity points
0
Hello everybody ,I have the following codes in MPLAB iwoudl ike to print out the index corresponding to any number (which meant frequency reads on T1CKI) of PIC16F877A , I tried to write down the codes below but for all frequency read I am getting the same index.
Please help on how I can find the index
Code:
#include <16f877a.h>
#DEVICE ADC=10
#Device *=16 
#fuses HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT,cpd
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#byte portc=0x07
#include "lcd.c"
#define ARRAY_SIZE 191

float value,value1,l,p1,p2,p3,v1,v2,v3;
int i,ti,found,q;
void frequency();


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,
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,
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};



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,
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,
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,
};

void frequency ()
{
float value, value1;
output_low(PIN_C4);
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*8*4))/100);
delay_ms(1000);
printf(lcd_putc, "\f%f",value1);
delay_ms(2000);
for ( i =0,found=-1; i<ARRAY_SIZE ; i++)
delay_ms(2500);
printf(lcd_putc, "\f%f",l);
printf(lcd_putc, "\f%%");
delay_ms(1500);
}
void main()
{ 
set_tris_d(0x00);
set_tris_a(0xff);
set_tris_c(0x01);
lcd_init();
delay_us(200); 

aba:delay_ms(1200);
printf(lcd_putc, "\fSinusoidal");
delay_ms(1500);
printf(lcd_putc, "\f%f",value1);
delay_ms(1500);
printf(lcd_putc, "\f%d",i);
delay_ms(1500);

while(true)
 { 
frequency();

if((input(PIN_A0)==0)&&(value1<= k[i])&&(j[i]<=value1))
  {  
printf(lcd_putc,"\fWait....");
//frequency();
delay_ms(150);

 l=(0.1*i)+8.0;
output_high(PIN_C4);
delay_ms(5000);
 lcd_gotoxy(6,2);
 printf(lcd_putc,"\f%2.1f", l);
 printf(lcd_putc,"\%%");
 //output_high(PIN_C4);
 delay_ms(10000); 
//goto bi;
}
else if((value1>12360)||(value1<10120))
{
output_high(PIN_C4);
//printf(lcd_putc,"\f%f",value1);
delay_ms(1500);
printf(lcd_putc,"\f%d",i);
delay_ms(1500);
printf(lcd_putc,"\fConnectProbe");
delay_ms(1500);
printf(lcd_putc,"\fAndThen");
delay_ms(1500);
printf(lcd_putc,"\fPress");
delay_ms(1500);
printf(lcd_putc,"\fREDButton");
}
}
}
Help on how I can find the index of any number reads from the probe of a function Generator.

Thanks
 
Last edited by a moderator:

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top