avatar_anlhlc

16f628a a.4 portunu cikis olarak kullanma

Başlatan anlhlc, 01 Temmuz 2013, 23:36:09

acemi

mantiken 175 gibi duruyor ama çok farklı cıkıyor öyle olunca tutmuyor süre yani

ete

Normalde hiç bir hesap yapmaman gerekiyor.
Programa ekleyeceğin,
DEFINE OSC 4 veya DEFINE OSC 16 komutları delayın işlemci frekansına göre otomatik hesaplanması sağlar. Bunu derleyici otomatikman yapar.
Proton kullanıyorsanız xtal=16 Mhz gibi bir komutu var idi hatırladığım. Oda aynı işi yapıyor.
Kısaca programa işlemcinin hangi frekansta çalıştığını söylerseniz delay yada pause süreleri otomatikman o frekansa uyarlanır.

Ete

acemi

ccs c kullanıyorum hocam teşekkür ederim araştirayim biraz ccs c komtu ile nasıl yapilabilir..

bunu ögrendiim iyi oldu çok teşkkürler

Adem AYDIN

/* 4Mhz için */
delay_ms(1000); //gerçekte geçen süre 1sn (0 - 65535 ve arası değerler için geçerli)
delay_us(1000); //gerçekte geçen süre 0,001 sn (0 - 65535 ve arası değerler için geçerli)
delay_cycles(100); //gerçekte geçen süre 0,0001 (0 - 255 ve arası değerler için geçerli)


8Mhz için
delay_ms(1000); //gerçekte geçen süre 1sn (0 - 65535 ve arası değerler için geçerli)
delay_us(1000); //gerçekte geçen süre 0,001 sn (0 - 65535 ve arası değerler için geçerli)
delay_cycles(100); //gerçekte geçen süre 0,00005 (0 - 255 ve arası değerler için geçerli)


delay komutlarının içerisine değer yazılabileceği gibi değişkenlerde yazılabilir sınırlara uymak şartı ile örnek vereyim

bekle=18; //(0 - 65535)
sure=63; //(0 - 65535)
sayi=98; //(0 - 255)
delay_ms(bekle);
delay_us(sure);
delay_cycles(sayi);
ALLAH 'ın Dini Galip Gelmesi İçin (Malınızla ve Canınızla) Çalışın.

M.A.A

#34
Merhaba
Sorum bu konuyla alakalı olduğu için yeni bir konu açmak istemedim.
Bir kod yazdım. 8 tuş ve 8 roleli. (RA5 Pullup bağlı giriş, RA4 Pullup bağlı çıkış).
Her tuş ilgili olduğu roleyi çektiriyor. Gerçek devrede 7 tuş ve role doğru çalışırken RA4 çıkışı periyodik olmayan kare dalga şeklinde çıkış veriyor. Proteusta sorunsuz çalışıyor.
Kod bloğunda RA4 ile ilgisiz  yerleri silersem düzeliyor. İşin içinden çıkamadım.

Düzenleme : Programı iyice sadeleştirip hata devam eder hale getirdim.



Device = 16F628A

Xtal 4

@CONFIG_REQ
@__CONFIG  BOREN_OFF & CP_ON& DATA_CP_OFF& PWRTE_OFF& WDT_OFF& LVP_OFF& MCLRE_OFF& INTRC_OSC_NOCLKOUT


Symbol TUS_1 PORTB.6
Symbol TUS_7 PORTB.3   
Symbol ROLE_1 PORTA.1
Symbol ROLE_7 PORTA.4   

 
Clear
      '76543210
TRISA=%00100000
TRISB=%11011111


CMCON =7
PORTA=0
PORTB=0

DelayMS 500
Basla:

    If TUS_1=0 Then
       ROLE_1=1
       pause 100
    else
        ROLE_1=0
   endif
     
    If TUS_7=0 Then
         ROLE_7=1
         pause 100
     else
         ROLE_7=0
    endif

GoTo Basla


End



ete

Bu işlemcide A portunda Komparatör vardır ve aksine bir komut verilmez ise Komparatörler ilk açılışta önseçimli (default) olarak aktif tir. PORTA.4 ise Komparatör çıkış pinidir. Yapman gereken şey
CMCON=7 komutunu programın başında bir yer eyerleştirmen. Böylece komparatör iptal olur ve A4 pinini normal digital giriş çıkış pini olarak kullanırsın.

Ete

M.A.A

Teşekkür ederim hocam.
CMCON = 7 komutu programda var ama yeri mi yanlış ?

ete

Yeri yanlış değil gözümden kaçmış iyide baktım ama. Her neyse Bu durumda bahsini ettiğin sorunu yaratacak herhangi bir kusur göremedim programda. Programı PBP ya çevirip derledim ve birde simulasyon hazırlayıp denedim. Dediğin şey olmuyor.
Dosyalar ilişiktedir. Dosya ile oynamadan önce en azında bir deneme yapmanı öneririm.

Ete

M.A.A

Hocam similasyonda bende de sorun olmuyor. Ama sizin attiginiz dosyayi gercek devrede deneyip sonucu bildiririm. Cok tesekkur ederim.

M.A.A

Hocam yolladığınız dosyadaki HEX i gerçek devreye uyguladım. Osiloskop çıkışının aşağıya ekledim. (Programın uzunluğuna veya kısalığına göre frekans ve darbe boşluk oranı değişiyor)

ete

Bu bir parazit sinyali gibi gözüküyor frekansı yüksek.  Pic besleme bacaklarında 100nf kondansatör takılımı?
Ne yapılıyor ise etraftan parazit alıyor. Muhtemelen pullup direnci anten gibi çalşıyordur. o dirence paralel birde 100nf bağla bakalım.

Ete

M.A.A

Beslemede 100nf var. TUŞ7 girişi 0 iken RA4 çıkışında dalga var iken pullup a paralel 100nf bağlar isem 2V mertebesinde düz çizgi oluşuyor. Ancak TUŞ7 yi 1 e çekip tekrar 0 yapınca RA4 çıkışı hep 0 kalıyor. Bu durumda iken 100nf yi çıkarırsam tekrar kare dalgaya dönüyor.

M.A.A

Hocam alakası nedir bilmiyorum ama RA4 e bağlı LED ve Direnci çıkardım. Sorun düzeldi. Çıkışları görmek için bütün çıkışlara direnç ve LED koymuştum. Sadece bunda sorun yaratması OC olmasından mı ?

ete

Baş etken OC olması elbette. Ama mutlaka etrafında bu paraziti üreten bir şey var ve alet havadan nem kapıyor.
Başka açıklaması yok bunun. Oraya taktığın her şey anten gibi çalışıyor ve direk pine yansıyor aldıklarıda.
Pullup direncine paralel kondansatör illaki 100nf olması gerekemez daha küçük değerlikli mesela 1nf 10 nf gibi bir değerde o paraziti kesebilirdi.

Ete

M.A.A

Teşekkür ederim. OC olmasından dolayı oluşan sorun çözülse bile riske atmamak için 16f628a yı aynı kılıf başka pic ile değiştirmek istiyorum.
Bildiğim alternatifler : 16F87-16F88-16f1826-16f1827   
Bunlardan hangisini tavsiye edersiniz. En sorunuz olarak bilineni sizce hangisi?


Powered by EzPortal