mikroişlemciye dışarıdan yani harici belli aralıklarda sinyal uygulayacağım bu sinyallerin arasındaki zamanı hesaplayacağım daha sonrada onu 1000 kat ve başka bir sayı ile büyüterek iki sinyal arasındaki zaman farkını arttıracağım bunda anlaşılmayan bi nokta var mı..
pic in algıladığı 0.2 usn lik aralığı plc nin rahat birşekilde algılaması için 0.2 msn aralığına çıkartmak istiyorum...
yazdığım program bu
------------------------------------------------------
#include <16f877.h>
#include <stdio.h>
#fuses HS,NOPROTECT,NOLVP,NOCPD
#use delay (clock=20000000)
#use fast_io(a)
int fark,binkati,tam,gecikme;
void main ( )
{
setup_psp(PSP_DISABLED);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_CCP1(CCP_OFF);
setup_CCP2(CCP_OFF);
set_tris_a(0x03); // RA0, RA1 pinleri giriş
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
while(TRUE)
{
if(input(PIN_A0)==1)
{ while(TRUE)
{set_timer1(0);tam=0;
do
{if(65535==get_timer1()){tam=tam+1;set_timer1(0);}
}while(input(PIN_A1)==0);
fark=get_timer1();
binkati=fark*0.2*1000000;
gecikme=tam*binkati;
output_high(PIN_B0);
delay_ms(gecikme);
output_high(PIN_B1);
break;
}
}delay_ms(gecikme);output_b(0x00);
}
}
----------------------------------------------------------
gördüğünüz gibi delay_ms(gecikme);
bu fonksiyon yazlıyor ama gerçekleşmiyor bu gerçekleşse olay çözülecek..
ama kabul edilmesine rağmen bu komutu gecikme olarak görmüyor...
OSİLASKOP GÖRÜNTÜSÜ
burada sinyal aralığı çok fazla nedeni buton kullanılması normalde böyle olmyabilir..