delay_ms(float); değişken tanımladığımda..

jonhboris

Üye
Katılım
27 Haz 2009
Mesajlar
54
Puanları
1
delay_ms(float); değişken tanımladığımda gecikme süresi ne olur..

yorumlarınızı bekliyorum..
 
eğer derleyicin ccs c ise helpinde şu ifade var;

Syntax:
delay_ms (time)

Parameters:
time - a variable 0-65535(int16) or a constant 0-65535
dolayısı ile float tanımlanamaz.
 
eğer derleyicin ccs c ise helpinde şu ifade var;

Syntax:
delay_ms (time)

Parameters:
time - a variable 0-65535(int16) or a constant 0-65535
dolayısı ile float tanımlanamaz.

ccs kabul ediyor...
-----------------
float time;

time=100;

delay_ms(time);
------------------

dediğimde belli bir gecikme süresi veriyor...
 
verdiğin float değer zaten tam sayı olduğu için kabul eder.100,25 verirsen kabul etmez.
 
float 32 bit ondalıklı sayıyıyı ifade ediyor ben dun senin yaptığın işleme bakarak folat tanımla demiştim sorun çözülemiyorsa başka bir programlama mantığı ile işe yaklaşalım.ne dersin?
 
benim amacım 2 tane aralarında faz farkı bulunan 50 Hz lik bir sinyalin faz farkı süresini bulmak..

ve o süreyide yine pic 2 ayrı çıkışından faz aralık süresini örneğin usn den msn yeye çıkarmak

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

------------
iki sinyal arasında faz farkı bile oluşmuyor.. proteusta kurun fazla birşey değil 877 koyun ra0 ra1 çıkışlarına AC sinyal verin 5 v faz farkı yaratın sinyaller arasında çıkışa faz farkı genliği büüyormu ona bakın
 
Son düzenleme:
delay_ms komutu içine float türünden bir sayı GİRİLEMEZ... Akıl var mantık var... mesela 100.32 diye bir milisaniye mi olur.(!!!) tacettin41 güzelce yazmış. 16 bitlik tamsayı olmak zorunda. eğer milisaniye işini görmezse delay_us(XXXX) kullan...
 

Forum istatistikleri

Konular
127,950
Mesajlar
913,850
Kullanıcılar
449,597
Son üye
CTure

Yeni konular

Geri
Üst