avatar_ete

Dokunmatik Buton Kontrolü (CVD system)

Başlatan ete, 04 Eylül 2011, 10:26:39

huseyin

hocam ayarları nasil  MPASM formatına çevirebilirim

ete

Aşağıdaki linkte izah etmiştim. Yeniden oku dikkatlice.
http://etepic.com/index.php?topic=300.0
Ete

huseyin

hocam size yazmadan önce form da bakmiştim config ayarlarina ama benim pbp da açtigim 16f628.inc dosyasinin içinde
degişiklik yapacagim config satiri yok resimde ki yerde mi degişiklik yapacaz

ete

İşlem basit aslında;
- PBP klasöründe 16f628.INC veya A serisini kullanıyor isen 16F628A.INC dosyasını açacaksın. Bunlar yok deme mutlaka olması gerekiyor. Yüklenecek dosya adınınyazılacağı kutu içine 16f628 yazarsan zaten bu ifade ile başlayan bütün dosyaları karşına liste olarak getirecektir program. İçinden istediğini seçip ekrana dosyayı getirebilirsin. Şayet yok ise geçerli bir derleyici kurmamışsın demektir. PBP versiyonu en azından 2,47 ve üzeri olması gerekir.
Bu dosyalardan birini açınca alt satırlara doğru ;
        __config _XT_OSC & _WDT_ON & _PWRTE_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF
satırını göreceksin. Bu satırın başına bir ";" işareti koyup geri kayıt edeceksin.
;        __config _XT_OSC & _WDT_ON & _PWRTE_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF
şeklinde yapılacak.

- Sonra programa MPASM formatında hangi sigorta ayarlarını verebilirim diye merak edersen;
MPASM klasöründe yer alan P16F628.INC dosyasını açacaksın.
Aşağılara doğru Config settings şeklinde config ayarlarını görebilirsin. Tabiiki bu ayarları programa aşağıdaki formatta yazmak gerekir.
@ __config _XT_OSC & _WDT_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF
Bu bir kalıp şeklidir. Gerekli değişiklikler programa göre yapılabilir. Mesela dahili osilatör kullanılacak ise komut;
@ __config _INTRC_OSC_NOCLKOUT & _WDT_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF
Mesela WDT kapalı ayarlanacak ise;
@ __config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_ON & _LVP_OFF & _CP_OFF
şeklinde yapılacaktır.

Senin açmış olduğun M16F628.INC dosyası PM assemler yani PBP nun kendi assemblerinin kullandığı formatları ihtiva eder. MPASM kullanacaksan bu dosya ile alakan yoktur.
Hepsi bu kadar.
Ete

huseyin

tmm hocam söylediginiz gibi yaptim şimdi derlemeyi düzgün bir şekilde yapiyorum tüm mesele sigorta ayarlarinin formati uygun yazmak miş sayenizde bir sorunun daha üstesinden geldim saolun hocam

EucLid

merhaba ete hocam. Forumunuza yeni üye oldum ve bu dokunmatik buton dikkatimi çekti. söylediğiniz mantığı 16f877A ile css c programlama dilinde yazdım ancak digital giriş analog giriş değişimleri yapmışsınız.

ANSEL.0=0  'sensör pini digital
       TRISIO.0=0 'sensör pini çıkış     
       GPIO.0=0   'sensör pini LOW ve sensör kapasitesi deşarj oldu
       TRISIO.0=1 'Sensör pini giriş yapıldı
       ANSEL.0=1  'sensör pini analog giriş yapıldı

ben bu kısmı css c de uygulayamadım. o yüzden düzgün bi veri elde edemiyorum. yardımcı olurmusunuz.

ete

#21
Dokunmatik buton sistemi ADC girişli işlemcilerde bağımsız pin kontrolü gerektirir. Yalnıcza bir butonpini kullanırsanız 16F877A da da yapılabilir sanırım. Veridiğiniz komutların direk 877A ya çevrimi aşağıdaki gibi olabilir.
Mevcut kodlar;
       ANSEL.0=0  'sensör pini digital
       TRISIO.0=0 'sensör pini çıkış     
       GPIO.0=0   'sensör pini LOW ve sensör kapasitesi deşarj oldu
       TRISIO.0=1 'Sensör pini giriş yapıldı
       ANSEL.0=1  'sensör pini analog giriş yapıldı
16F877A ya uygulanışı
       ADCON1=7:CMCON=7
       OUTPUT PORTA.0  veya TRISA.0=0
       PORTA.0=0
       INPUT PORTA.0    veya TRISA.0=1
       ADCON1.=%10001110
Hepsi bu kadar. Ancak CCS de bu komutların karşılığı tam oalrak  nedir bilemiyorum.
Ete

EucLid

teşekkur ediyorum hocam tekrar deniycem. Bizde 16f877a, 16f1937, 18f4620 16f1503 picleri var sizce bunların hangisi kullanmak bu sistem için daha iyi olur.

ete

877A nın dışındakileri tanımıyorum. Aslında bu sistem birden fazla buton kullanacaksanız bağımsız olarak analog pinleri kontrol edilebilen picler için uygundur. Mesela 16F877A da yalnızca AN1 pinini analog yapamazsınız. Ama 16F88 de yapabilirsiniz.
Kullandığım 12F675 de de tek tek pinleri kontrol edebilirsiniz.

Ete

huseyin

hocam biraz fazla rahatsiz ediyorum sizi ama sizin sayenizde programlamaya başladim
fakat sizin yazdiginiz programlarin komut listesini incelerken register ayarlarini neye göre yaptiginiz merak ediyorum
örnegin option_reg, ansel , adcon0, cmcon.... bunlarin ne işe yaradigini anlatabilirmisiniz yada nerden ögrenecegim hakkinda bilgi verebilirmisiniz

ete

Bunlar tamamen kullanılan işlemciye özel kontrol registerleridir. Tabiiki öğreneceğin yer o işlemcinin Data sheet'idir.
Bu işi öğrnecekseniz Data Sheet okumayı öğrenmeniz gerekir. İllaki lisan bilmeniz şart değil. En fazla 20 -30 kelime öğrenerek data sheetleri istediğiniz gibi yorumlayabilirsiniz. Bu işlere başladığımda doğru dürüst İngilizce bilmiyordum. Ama inatla yazılanları öğreneceğim diye elimde lügat okumaya ve yorumlamaya çalıştım. Şu anda ingilizcem iyi seviyeye geldi sayesinde.
En azından yazılanları okuyup anlayabiliyorum.
Bir data sheet da öncelikle nereye bakmanız gerektiğini iyi bileceksiniz.
İşlemcinizin Analog-Digital çeviricisi var ise bakmanı gereken yer "Analog-to-Digital Converter Module" başlığı altında yazılanlar.
Pek çok işlemcide Abu işi ADCON1 ve ADCON0 registerleri (yazmaç) kontrol ediyor. Nispeten yeni nesil işlemcilerde ANSEL (Analog Selecet) registeri bu işi yapmaktadır. Ama yinede ADCON1 registeri hemen hepsinde ayrıca mevcut.
Comparator Modul bakmanız gereken diğer bir yerdir. İşlemcide Comparatör varmıdır anlamanız için varsa nasıl iptal edilecek yada nasıl kullanıalcak hepsine ait detaylar orada var.
INTCON registeri , OPTION Registeri gibi registerler bakmanız gerekend iğer yerlerdir.

Ete


EucLid

merhaba ete hocam. ben bu işi ccs c de yapamadım :) ve pic basic ide öğrenmeye karar verdim zaten netten bu dokunmatikle ilgili döküman aradığımda ya pic basic ile yada asm ile yazılmış kodlar çıkıyor. ya ccs c kullanışlı değil yada yurt dışında yaygın değil. rica etsem pic basic kodlarını yazıp derleyebileceğim bir programın linkini verebilirmisiniz.

ete

Aşağıdaki linki inceleyiniz. Ayrıca site içinde yayınlanmış olan Basic derslerini takip ediniz.

http://etepic.com/index.php?topic=300.0

EucLid



Powered by EzPortal