Merhaba Arkadaşlar
CCS C de zamanlama songüsü kurmaya çalısıyorum ama istediğim gibi olmadı. PIC programlamada yeniyim. Forumdaki örneklerle aşağıdaki kodu yazdım ama istediğim gibi çalışmadı.GSM li bir proje yapmak istiyorum detayları burda paylaşacağım.
Yardımınızı bekler şimdiden teşekkür ederim.
#include <16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
#use fast_io(b)
void gecikme(int a){
int i;
for (i=0;a>10000;i++)
{
delay_ms(10);
}
}
void main ()
{
setup_psp (PSP_DISABLED); //PSP birimi devre dışı
setup_spi (SPI_SS_DISABLED); //SPI birimi devre dışı
setup_timer_1 (T1_DISABLED); //T1 birimi devre dışı
setup_timer_2 (T2_DISABLED,0,1); //T2 birimi devre dışı
setup_adc_ports(NO_ANALOGS); //ANALOG giriş yok
setup_adc(ADC_OFF); //ADC birimi devre dışı
setup_CCP1(CCP_OFF); //CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); //CCP2 birimi devre dışı
set_tris_a(0x00);
while(1)
{
output_high(pin_a0);
gecikme(10);
output_low(pin_a0);
gecikme(10);
}
}
mesaj birleştirme:: 14 Ekim 2013, 01:20:48
Sorunu çözdüm.
for (i=0;a>10000;i++)
a>i yapmam gerekiyormuş.
Kodun son hali
#include <16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
#use fast_io(b)
void gecikme(int a){
int i;
for (i=0;a>i;i++)
{
delay_ms(10);
}
}
void main ()
{
setup_psp (PSP_DISABLED); //PSP birimi devre dışı
setup_spi (SPI_SS_DISABLED); //SPI birimi devre dışı
setup_timer_1 (T1_DISABLED); //T1 birimi devre dışı
setup_timer_2 (T2_DISABLED,0,1); //T2 birimi devre dışı
setup_adc_ports(NO_ANALOGS); //ANALOG giriş yok
setup_adc(ADC_OFF); //ADC birimi devre dışı
setup_CCP1(CCP_OFF); //CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); //CCP2 birimi devre dışı
set_tris_a(0x00);
while(true)
{
output_high(pin_a0);
gecikme(100);
output_low(pin_a0);
gecikme(100);
}
}
gecikme(100); girdiğimde 100x10 =1000 ms yapıyor.
Teşekkürler
neyi istediğinizi soruyu yönelttiğiniz kişilerde bilse iyi olur du :)
Alıntı yapılan: robomaster - 14 Ekim 2013, 00:55:27
neyi istediğinizi soruyu yönelttiğiniz kişilerde bilse iyi olur du :)
Merhaba gecikme (1000); girdiğimde void döngüsüne gidip girdiğim değer kadar geçikme yapmasını istiyordum. daha dogrusu for ve void işlemleri üzerine çalışıyorum.
değer girdiğim halde çalıştıramadım. sonradan deneme yaparak ikinci cevapta verdiğim örnek gibi olunca çalıştı. Soruyu sormamla çözmem bir olunca hemen cevap yazdım.Ama soruyu sormadan önce baya bir uğraştım :-)
ilginiz için teşekkür ederim.