İki Kesmenin Aynı Anda Kullanılması

Başlatan hibeyup_44, 14 Haziran 2014, 16:22:23

hibeyup_44

Öncelikle Selamun Aleyküm değerli üstatlar,

Bir projede iki adet cihazın tur sayısını bulmam ve ekrana yazdırmam lazım. Tek kaynaktan sayma yapılacak olsa interrupt işi görürdü amma iki kaynağında aynı anda okunması ve tur kaybı olmamsı gerekiyor yoksa piority ile belki çözülebilirdi, ayrıca tur frekansı ortalama 400 Hz civarında.Ayrı cpu kullanmaktan başka ne gibi bir çözüm önerebilirsiniz?

Saygılarımla

ete

PORTB değişiklik kesmesi kullan ve her iki cihazı PORTB.4. ve PORTB.5 pinlerine bağla.
Değişiklik kesmesini aktive et.
Kesme kısmında Hangisi HIGH ise ona ait komutları icra et. Bu şekilde olabilir.
Hangisi high bulmakiçin tek if satırı ile halletmeye çalış.
IF PORTB.4=1 then
  CIHAZ1=CIHAZ1+1
  Goto Çıkış
ENDIF
   CIHAZ2=CIHAZ2+1
CIKIS:
    BAYRAK=0
    ....
şeklinde olabilir

Diğer bir yöntem de cihazın birisini PORTB.0 kesmesine diğerini ise TMR1 giriş pinine  bağlayıp TMR1 sayacını dışarıdan tetikli hale getirebilirsin.
Programiçinde TMR1 değerine sürekli bakarak ne yaacaksan yapmaya çalışırsın. Böylece ikisinde de puls kaçırılmamış olur.
400 hz büyük bir frekans işlemcileri en azından 20 veya en iyisi 40 Mhz de çalıştırman uygun olur.

Ete


hibeyup_44

Çok özür diliyorum, Ramazan ayı münasebetiyle izne ayrıldığımdan epeydirli bakmıyordum cevabı yeni görebildim. Cevabınız için çok teşekkür ederim. Bu iş için pic18f46k22 aldım 60Mhz max osc si olan yalnız 60 Mhz osc cpu yu aldığım anda yoktu bende 50Mhz TCXO ( Thermal - Controlled - Xtal - Oscillator ) 4 bacaklı olan osilatörlerden aldım. herhalde bağlantıyı osc1 in in girişine 1nF ile yapıp yazılımda osc girişin external clock olarak ayarlamam gerekecek. Bağlantıyı yapıp, interrupt ları dediğiniz gibi ayarlayıp denemeyi yapıp sonucu İnşaallah resimli olarak paylaşacağım.

Saygılarımla

ete

Yanlış bilmiyor isem, bu işlemcide direk 50 veya 60 mhz osilatör yada kristal kullanamazsın.
İşlemci bu frekanslarda çalışır ancak söz konusu frekanslar Pll yardımı ile  mevcut kristal yada osilatör frekansının 4 ile çarpılması sonucu elde edilir.
60 mhz frekans için 15 mhz kristal yada osc kullanıp pll yi aktif hale getiemen gerkir.

Bu konuyu araştır sonradan neden çalışmıyor demiyesi .

Ete

hibeyup_44

USB pll frekansı gibi mi demek istiyorsunuz hocam? Dün basit bir led flaşör yapıp çalışıp çalımadığını test etmek istedim bir iki satırlık kodda bir sıkıntı vermedi normal çalıştı. Şu anda datasheet dosyasını inceliyorum dediğiniz üzere bir durum varsa yeniden yazarım.


Saygılarımla.

ete

Nasıl çalışmış pek anlamadım ama bana göre 64 Mhz frekansa 4xKristalFrekansı usulü ile ulaşılması mümkün gözüküyor.
Eskiden Normal (4Mhz lik) picleri 20 Mhz de çalıştırabiliyordum. Bir yerden mutlaka sakatlık çıkartıyordu ama çalışıyordu. Ona benzemesin sakın.!

Data sheet de çok açık değil bu konuda. 4 Farklı kristal modu demiş 64 Mhz'e kadar ama nasıl olduğu pek açıklanmamış yada ben göremedim. Ama osilatör blok şemasına bakılacak olursa arada PLL olduğu görülebiliyor.

Ete


Mucit23

Hocam sanırım arkadaş şu harici beslemeli osilatörlerden kullanmış

Normalde Zaten 18F46K22 64Mhz Frekansta çalışabilmekte. Ama bu frekansta kristal osilatör bağlanarak çıkılamıyor. PLL yardımıyla ancak olur. 16Mhz kristal + 4xPLL ile 64Mhz De çalışabilir işlemci.

Benim bildiğim kadarıyla TCXO bağlanacaksa osilatör girişi External olarak ayarlanmalı.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

hibeyup_44

Merhablar,

4xPLL kullanımı zorunlumu yoksa multiple fonsiyon olarak kullanılabilir mi, tam olarak anlayamadım. Ben cpu yu EC external clock moda alıp 50mhz harici beslemeli diktörtgen tip olan osilatörle çalışıyorum şu anda hocam,osilatörün  iki bacağı besleme diğer output bacağınıda alıp osc1 bacağından CLCIN den giriş yaptım. Projenin bitiminde olası sıkıntılara karşın pcb de 16mhz osc ve iki kondansatör takabileceğim yerde ayarlıyacam fakat hala tereddütdeyim datasheet den de pek bir şey anlayamdım. Örnek devre bulabilirsem paylaşıcam sizlerlede.


Saygılarımla

Mucit23

4xPLL kullanımı zorunlu değil elbette.

Sen External Clock moda alınca zaten pllyi kullanmamış oluyorsun.

EC modunda osc_in girişinden 50Mhz'i ver gitsin. problem olmaz.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

Powered by EzPortal