lord-ex ustamizin kodlarini icledim ve analog okutma iicin bu kodlar da denisiklik yaparak bunun uzerinden gideyim diorum ..kodlarin mantigini cozdum ..kendi islemcime uyguladim bakalim okulda denicem sonuclari yazarim.
//ccs c ile yazıldı.
//4Mhz kristal isiste c6 ya terminal bağlarsanız çıktıyı görürsününüz.
#include <16F877.h>
#device ADC=10
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
void main() {
long int value[20],gecici,ortalama,total;
int i,j;
setup_adc( ADC_CLOCK_INTERNAL );
setup_adc_ports( ALL_ANALOG );
set_adc_channel( 0 );
printf("Sampling:\r\n");
for(i=0;i<20;i++){
value = read_adc();
}
printf("\nalinan ornekler");
for( i=0;i<20;i++){
printf("\rCh0:%ld " value);
}
for(i=0;i<20;i++){
for(j=0;j<20-1-i;j++){
if(value[j]>value[j+1]){
gecici=value[j+1];
value[j+1]=value[j];
value[j]=gecici;
}}}
printf("\nsiralanan ornekler");
for( i=0;i<20;i++){
printf("\rCh0:%ld " value);
}
for( i=0;i<5;i++){
value=0;
}
for( i=19;i>14;i--){
value=0;
}
printf("\nilk 5 son bes = 0");
for( i=0;i<20;i++){
printf("\rCh0:%ld " value);
}
for( i=0;i<20;i++){
total=total+value;
}
ortalama = total/(10);
printf("\nortalama değer = %ld" ortalama);
}