Merhaba;
CCS Picc'de aynı anda olabilecek kesmelerin öncelik sırası nasıl tanımlanabilir.
Teşekkürler
İyi Çalışmalar
pic te böyle bir özellik yok. Dolayısıyla CCS'de de böyle bir durum söz konusu değil.
enable_interrupts(INT_TIMER0);
enable_interrupts(INT_TIMER1);
bu şekiLde aktif ediliyorlar
disable_interrupts(); ile de pasif...
buna göre sıralayabilirsin ne istıyorsan...
Assembly kullanarak yap en iyi bu şekilde çalışır. Yaptığından da emin olursun. Datasheetinde bilgi vardır. Bir incelersen bulabilirsin.
CCS de böyle bir özellik var.
#priority ext, timer2, timer1, rtcc
Burada ext en büyük önceliğe sahip.
eğer kullandığın pic 18 serisinde olduğu gibi kesme önceliğini destekliyorsa yaparsın,ama ben hiç kullanmadığımdan bilemiyorum sadece 18f serisinin bilgilerinie baktım pdf den.oradan interrupt önceliğini anlatıyor....
ccs için ise yine yardım dosyalarından desteklenen picler için şunu buldum#priority ints
bunu kullanabilirsin....(yine kullanmadğım için emin değilim)
kesme önceliği derleyiciye bağlı bir özellik değildir. İşlemcinin mimarisine ve register ayarlarına bağlıdır. Compiler içerisinden verilen direktifler sadece bu registerleri ayarlar.
Bu yapmak için RTOS kullanin.
Reklam:
E-dergi içinde PIC'te RTOS adli bir makale olacak, oradan baslayabilirsiniz.
Hangi int gelirse gelsin ayni vektore yonelen islemcilerde oncelik siralamasini zaten yazilimla yapiyorsunuz.
Isi garantiye alip int rutininde cok kisa bir bekleme ardindan int flaglari tek tek sinayip birden fazla sayida set olmuş flag varsa dilediginiz onceligi dilediginize verebilirsiniz.