Verdiginiz cvplar için teşekür ederim
setup_oscillator(OSC_8MHZ|OSC_INTRC|OSC_31250|OSC_PLL_OFF);
kodunda su kısmı anlamadım OSC_31250 nedir nedemekdir?
Ben deneme olarak uzakdan kumanda yapcam 6 buton ile uzakdaki 6 ledi çaliştircam
Örnek ben 1 numaralı butona elim basılı oldugu müdetçe alıcıda ki bir numaralı led yanacak elimi çektigim an sönecek
bende bu işlemi kesmenin içinde yaptırmayı düşündüm yaptım devrede çalişiyor şu an
#int_RDA
void serial_isr()
{
{
Bilgi=getc();
Disable_interrupts(GLOBAL);
{if(Bilgi=='A') {LEDA=1} // alıcıya a A bilgisi geldimi LedA yı yakacak
komutlar devam ediyor...
enable_interrupts(GLOBAL);
}
void main()
{ Ayarlar();
while(1)
{
delay_ms(100);
PORTA=(0B00000000); //Kesmeden cıktıkdan sonra Portları sıfırlıyor
}
}
void ayarlar()
{
Set_tris_B(0B00000010);
Set_Tris_A(0B00000000);
clear_interrupt(INT_RDA);
clear_interrupt(INT_EXT);
Disable_interrupts(GLOBAL);
// PORTA=(0B00000000);
// PORTB=(0B00000000);
port_b_pullups(TRUE);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
setup_uart(True);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
}
Şimdi benim problemim şu ben birinci butona devamlı basılı tuttuğum zaman LedA belli bir Periyota yanıp sönuyor bende delay_ms gecikmesini artırdım ve bu belli Periyota yanıp sönmesini dahada azaldı ornek verecek olursak 10 sn bir yanıp sönerken 20 sn bir yanıp sönmeye başladı(led hızlı bir şekilde yanıp sönüyor) bende sonradan anladım artık pic kesmeye girmeden önceki yeri hafızada bir yerde kayıt altına alıyor ve kesmeden sonra oradan devam ediyor mesala delay_ms(1000) dediysem eger kesme geldiyse delay_ms gecikmesi 50 ms de kaldıysa kesme bittikden sonra 51 ms den baslayıp komutu tamamlıyor ..
ve benim sıkıntım devam lı elim buttona basılı fakat bu zaman zarfında pic kesmeden aniden cıkıp bir komut işleyip tekrar kesmeye giriyor ve bu şekilde devam ederek
while(1)
{
delay_ms(100);
PORTA=(0B00000000); //Kesmeden cıktıkdan sonra Portları sıfırlıyor
}
bu komudu yavaş yavaş tamamlıyor bunun sonucuda leda da kırpılma oluyor.
benim istediğim kesmeden cıktıkdan sonra gideceği yer her zaman delay_ms(1000) yeniden saymaya başlasın kaldıgı yerden degil ..
Şimdi ben bu şekilde bir algoritma geliştirirek ledleri yakıp sondurmeyi düşündüm tabikide bu işlemleri başka şekilde yapabiliyorsakda olabilir mesala örnek olarak bir soru daha sorcam pic bu şekilde sürekli kesmeye girmesi pic için sorun yaratırmı çünkü elim devamlı butona basılı tutacağım belki 10 sn. belki 5 dk. Bazı araştırdıÐım yerlerde sorun olur dediler bazıları hiçbirşey olmaz dedi.
Başka yöntemlerde kullanmak isterim mesala kesme yapmadan denedim bu seferde getch komutunda bilgi sürekli kalıyor negibi derseniz soyle ben vericiden button1 basılı tutuyorum ve elim basılı iken vericinin enerjisini kesiyorum ama alıcıda hayla leda yanıyor onun için kesme yontemine başvurmuştum
İşallah Derdimi Anlatabilmişimdir.