PIC16F877 - C dosyası ne yapıyor ?

lepreachun

Üye
Katılım
26 May 2010
Mesajlar
6
Puanları
1
Yaş
36
İyi akşamlar beyler. Elimde kalp atış ölçümü ile ilgili bir PIC dosyası var. C ile yazılmış ancak ben tam olarak işlevini anlayamadım. Bu konuda yardım edebilirseniz sevinirim.

Sistem parmaktan atış işaretini alıp LCD ekrana yazdıracak. Ancak LCD ekrana sürekli ölçülen sonuçlar yazılıyor. Yani bir an 76 atımken bir anda parmak oynama yaparsa 40 ya da 120 atım gibi alakasız sonuçlar geliyor ama doğru ölçüm yapıldığında da aşağı yukarı 3-5 farkla birbirine yakın sonuçlar veriliyor.

#include "as2.h"
#zero_ram






unsigned long int display[10];
unsigned long int a,heart_rate;
unsigned int sira;




#define LCD_EN PIN_B1
#define LCD_RS PIN_D7
#define LCD_D0 PIN_B2
#define LCD_D1 PIN_B3
#define LCD_D2 PIN_B4
#define LCD_D3 PIN_B5


#include "lcd_mini.h"




#int_EXT
void EXT_isr(void)
{
unsigned long int b,c;
b=a;
c=a;
c=50000/c;
if((c<200) && (c>40)){
display[0]=display[1];
display[1]=display[2];
display[2]=display[3];
display[3]=display[4];
display[4]=display[5];
display[5]=display[6];
display[6]=display[7];
display[7]=display[8];
display[8]=display[9];

display[9]=40000/b;
heart_rate=(display[0]+display[1]+display[2]+display[3]+display[4]+display[5]+display[6]+display[7]+display[8]+display[9])/10;
printf(lcd_putc,"\1A=%3Lu \2NABIZ=%3Lu ATIM/DAKIKA",heart_rate,display[9]);

}
a=0;

}








void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_CLOCK_DIV_2);
setup_timer_0(RTCC_EXT_H_TO_L|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DIV_BY_4,200,12);
setup_ccp1(CCP_OFF);
delay_ms(1000);


lcd_init();
printf(lcd_putc,"\1NABIZ OLCER");
delay_ms(1000);
printf(lcd_putc,"\f");
enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);





while(1){
delay_ms(1);
a++;
}




}
 
Son düzenleme:
Beyler biriniz yardımcı olabilirse çok müteşekkir olurum
 

Forum istatistikleri

Konular
129,689
Mesajlar
929,034
Kullanıcılar
452,395
Son üye
gkmeens

Yeni konular

Çevrimiçi üyeler

Geri
Üst