Aynı anda 2 veya 3 harici kesme kullanımı

Başlatan dyonizos, 23 Nisan 2016, 00:14:24

dyonizos

Selamlar,
Kafamdaki bir projede aynı anda 3 adet sensörden gelen palsleri saydırmam gerekiyor.
3 adet harici kesmesi olan 18f4550 gibi bir pic kullanarak aynı anda gelen palsleri kaçırmadan saymak mümkün müdür? Yoksa bir kesme işlemi yaparken diğerlerinden gelen kesme talepleri kaçarmı yada mevcut olanı bozar mı?
Bu palsleri ayrı ayrı pic ler ile saydırıp seri iletişim ile tek bir pic e göndermem mi daha mantıklı.
Bu palsler aynı anda sayılacak ve belli bir değerden sonra sayma işlemi duracak.
Tek bir pic üzerindeki harici kesmelerin aynı anda çalışma mantığı nasıldır?
Teşekkürler

sinus

PIC mcu'lardan anlamam.

...

fakat; yeterli timerin varsa, clock kaynağını dışardan seç. istediğin süre sonunda sayaçları kontrol et.

omereliusuk

B4....b7 kesmesini kullan . Ayni anda 4 pini tek kesmede ko ntrol edebilirsi n.  Yalniz her yukselmede ve dusmede kssme olusturur.
Veya 3ayri pin kullan diyotla b0 pinine gir. Hangisinden gelirse gelsin b0 interrupt a gidecek sen de kontrol edebileceksin interrupttan en kisa surede cik.an gerekir ki sonraki interrupt okunabilsin.

dyonizos

B4-b7 kesmesinin bu islemi yapabileceginden emin degilim. Zira bu palsler yaklasik sn de 100 civari gelecek ve 3 sensorden ayni anda gelme ihtimaleri oldukca yuksek. Buyuk ihtimalle ayni anda geldiginde palslerin bir kismini kaciracaktir diye dusunuyorum.
Ayni sekilde farkli pinleri kullanip diyot ile B0 a girmekte ayni sekilde bu hizlarda problem olur sanki.

omereliusuk

100hz bu islemciler icin cok da önemli bir frekans degil. Pic nculari bu kadar fazla kucumsemeyin.bu isleri de yapmayacaksa bu islemcileri neye yarar?. Ama tabii olarak dogru algoritmayi oluşturmak gerekir. Yoksa 1ghz hiz da olsa nafile.

MC_Skywalker

8259A Programmable Interrupt Controller  kullanabilirsin. 8 tane int girşi var

Maxim

birkaç farklı interrupt girişi aynı anda kullanılıyor diye biliyorum
donanım kesmesine gidince gelen farklı interruptları basit bir if komutu ile dallandırıyorlar
if A geldiyse bunu yap, if B geldiyse şunu yap gibi.

ayrıca, high-low perioty interrupt modu da olması lazım
On_Hardware_Interrupt GoTo ISR
On_Low_Interrupt GoTo ISRL

ErsinErce

interrupt kullanmaya gerek yok 4431 in bu işler için donanımı mevcut
donanımı konfigüre edip sadece sayı okuyarak diğer işlerinizi rahatlıkla yapabilirsiniz.

2 adette sınırlı olsaydı herhangi bir pic ile timerın clock kaynağını dışarı yönlendirmeniz yeterdi

uzun yoldan yapmak istiyorsanız piclerin interrupt kısmına dallanan yerde bütün kesmeleri sizin tek tek kontrol etmeniz lazım

t2

#8
4431  nedir?
Aradım pek birşey çıkmadı.


PICmiş
http://www.microchip.com/wwwproducts/en/PIC18F4431

selimkoc

PIC18 serisinde öncelikli int ve normal int var.

Maxim

PIC18F4431 baktım 8 tane pwm çıkış var, 2 tane ccp portu var
benmi göremedim?
adama 3 tane giriş için interrupt lazım, pwm çıkışı değil

dyonizos

Arkadaslar uzun uzun dusunup en sonunda bu isi rs485 master ve slave ile yapmaya karar verdim. Her pulse i kendi slave pic u sayacak ve mastera gonderecek. Bu durumda 3 den fazla ihtiyacim olmasi durumunda da sayiyi rahatlikla artirabilicem. Yaptigim testlerde ayni islemci uzerinde 3 interrupt, matrix tus takimi, eprom, glcd, saat gibi seyleri calistirmaya calisinca surekli interrupta girmekten diger islemler aksiyor. Pulse leri ayrica saymak sanirim en sagliklisi. Cevaplariniz icin cok tesekkur ederim. Az sayida islem yaptirmak istedigimiz zaman bu cevaplar kesinlikle yol gosterecektir.

Su anda rs485 sorunum var. Ayri bir baslik olarak deneme icin kodlari yazmistim. Egerii rs485 ile calisan varsa orada bana yardimci olabilir mi.
Tekrar tesekkurler.