Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

Capacitive Sens kodları

Başlatan styx75, 01 Ocak 2016, 22:36:22

styx75

selam arkadaşlar..
bildiğiniz gibi 16f1827 gibi piclerde capacitive sens modülleri var ama uygulama ile çok az örnek var bu modülün çalışmasını bilen varmı yani kesme kısmı varmı dokunmayı nasıl algılatıp çıktıya dönüştürüyoruz bunun gibi
saygılar.

OG

FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

pwm.c



Device = 16F1827
Declare Xtal = 8 
Config1 FOSC_INTOSC,WDTE_OFF,PWRTE_OFF,MCLRE_OFF,CP_OFF,CPD_OFF,BOREN_OFF,CLKOUTEN_OFF,IESO_OFF,FCMEN_OFF
Config2 WRT_ALL,PLLEN_OFF,STVREN_OFF,LVP_OFF,BORV_19

Dim flag As Bit
Dim cap As Word

    OSCCON = $70   ' Internal 8MHz clock
    ANSELA=%11111111      
    ANSELB=%00000000 
    TRISA=%11111111
    TRISB=0
    PORTA=0
    PORTB=0           
    MDCON = 0
    CM1CON0=0
    CM2CON0=0
    CM1CON1=0
    CM2CON1=0
    APFCON0=0          
    FVRCON =0                               
    DACCON0=0             
    DACCON1=0
    SRCON0=0                    
    SRCON1=0              
    MDCON=0               
    MDSRC=0                                
    MDCARH=0              
    MDCARL=0 
    WPUB=0   
    INTCON = 0              
    CPSCON0 = %00001100    ' 11 = Oscillator is in high range. Charge/discharge current is nominally 18 uA.
    CPSCON1 = %00000000  ' Dokunmatik kanal ayarı
    T1CON = %11000001
    T1GCON.7 = 0
    TMR1L=0
    TMR1H=0
    CPSCON0.7 = 1
    DelayMS 250
    
ANADONGU:
'-------------------------------------
    CPSCON1 = 0   ' Dokunmatik kanal 1
    DelayMS 16
    GoSub   DOKUNMATIK
    If flag=1 Then
        High PORTB.0
        flag=0 
    Else
        Low PORTB.0
    EndIf
'-------------------------------------
    CPSCON1 = 1   ' Dokunmatik kanal 2
    DelayMS 16
    GoSub   DOKUNMATIK
    If flag=1 Then
        High PORTB.1
        flag=0 
    Else
        Low PORTB.1
    EndIf
'-------------------------------------    
    CPSCON1 = 2   ' Dokunmatik kanal  3
    DelayMS 16
    GoSub   DOKUNMATIK
    If flag=1 Then
        High PORTB.2
        flag=0 
    Else
        Low PORTB.2
    EndIf
'-------------------------------------    
    CPSCON1 = 3   ' Dokunmatik kanal  4
    DelayMS 16
    GoSub   DOKUNMATIK
    If flag=1 Then
        High PORTB.3
        flag=0 
    Else
        Low PORTB.3
    EndIf
'-------------------------------------    
    GoTo ANADONGU

    
DOKUNMATIK:
     CPSCON0.7 = 0
     cap = (TMR1H << 8) + TMR1L
     If (cap >> 8) > 15 Then    '!!! (15) EŞİK DEĞERİ !!!
          flag=0 'Not touch
     Else 
          flag=1 'Touch
     EndIf
     TMR1L=%00000000
     TMR1H=%00000000
     CPSCON0.7=1
     Return

End


hex:
:020000040000FA
:100000000000000080312728A501A400FF30A407CC
:10001000031CA507031C08000330A300E3301220D3
:10002000F533A301F43EA200A309FE30031C033202
:10003000A2070318FD33A2070000A30FF933000045
:100040002218003222180032080020000800703008
:1000500021009900FF3023008C008D0121008C00CD
:100060008D0120008C018D0127009C01220091014F
:100070009301920194019D019701980199019A01C0
:100080009B0127009C019D019F019E0124008D0181
:100090008B010C3020009E009F01C1309800991305
:1000A000960197019E17FA30803104209F0110308D
:1000B000803104208031AA208031281C662821004C
:1000C0000D1020000D14281080316A2821000D1019
:1000D00020000D1001309F0010308031042080314D
:1000E000AA208031281C7B2821008D1020008D142F
:1000F000281080317F2821008D1020008D100230C3
:100100009F001030803104208031AA208031281CCB
:10011000902821000D1120000D1528108031942801
:1001200021000D1120000D1103309F00103080318F
:1001300004208031AA208031281CA52821008D119F
:1001400020008D1528108031A92821008D11200054
:100150008D11AC339E131708A700A60116082607B9
:10016000A9000030273DAA002A08A000A101A1088B
:10017000031D0532103020028031031CC3282000EB
:1001800028108031C4282814960197019E17080072
:04019000FF33FF3307
:020000040001F9
:02000E00A40943
:02001000FC1CD6
:00000001FF


kolay gelsin.
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

F.T

pwm.c hocam selamlar.Bu çalışmada rastgele çalışma durumu oluyormu.Kararlılık nasıl.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

ipek

@pwm.c hocam caps yerlerini kendinizmi uydurdunuz ? yoksa isiste böyle bir şey mevcutmu ?

styx75

yanıtınız için çok teşekkür ederim .baya bir araştırma yapmıştım sanırım bu mtouch hakettigi ilgiyi görmüyor.

pwm.c

Alıntı yapılan: F.T - 03 Ocak 2016, 18:18:57
pwm.c hocam selamlar.Bu çalışmada rastgele çalışma durumu oluyormu.Kararlılık nasıl.

kararlılığını hala test ediyorum. şuanda iyi gibi görünüyor ama daha değişik gürültülü ortamlarda denemeler yapmam lazım. kodları ise normalde mikroc için yazılmış bir örnekten buldum ve protona dönüştürdüm. denemeyide breadbord üzerinde yaptım. sistemi daha ayrıntılı inceledikten sonra web sayfamda yayınlamayı düşünüyorum. mikroc, ccs c ve proton olarak :)

Alıntı yapılan: ipek - 03 Ocak 2016, 19:47:10
@pwm.c hocam caps yerlerini kendinizmi uydurdunuz ? yoksa isiste böyle bir şey mevcutmu ?

İsis'te var. "TOUCHPAD" diye aratınız.

kolay gelsin.
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

F.T

Tamamdır.Kararlılığı iyi ise sanırım çoğu uygulamada kullanabiliriz.Birde video eklerseniz daha güzel olurdu.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

styx75

selam sayın pwm.c  sistemi birebir kurdum isis ortamında çalıştıramadım, bende program blokları arasına gösterge ledleri ilave ettim sonuç programın akışı zamanla yavaşlıyor.kodlar devre şemasını ekledim ustalar yardım ederse sevinirim.kusura bakmayın kod ekleme aktif olmadı bende.



ANADONGU:
High PORTB.4
'-------------------------------------
    CPSCON1 = 0   ' Dokunmatik kanal 1
    DelayMS 16
    GoSub   DOKUNMATIK
    If flag=1 Then
        High PORTB.0
        flag=0
    Else
        Low PORTB.0
    EndIf
    Low PORTB.4
'-------------------------------------
High PORTB.5
    CPSCON1 = 1   ' Dokunmatik kanal 2
    DelayMS 16
    GoSub   DOKUNMATIK
    If flag=1 Then
        High PORTB.1
        flag=0
    Else
        Low PORTB.1
    EndIf
    Low PORTB.5
'------------------------------------- 
High PORTB.6 
    CPSCON1 = 2   ' Dokunmatik kanal  3
    DelayMS 16
    GoSub   DOKUNMATIK
    If flag=1 Then
        High PORTB.2
        flag=0
    Else
        Low PORTB.2
    EndIf
    Low PORTB.6
'-------------------------------------   
High PORTB.7
    CPSCON1 = 3   ' Dokunmatik kanal  4
    DelayMS 16
    GoSub   DOKUNMATIK
    If flag=1 Then
        High PORTB.3
        flag=0
    Else
        Low PORTB.3
    EndIf
    Low PORTB.7
'-------------------------------------   
    GoTo ANADONGU

   
DOKUNMATIK:
     CPSCON0.7 = 0
     cap = (TMR1H << 8) + TMR1L
     If (cap >> 8) > 15 Then    '!!! (15) EŞİK DEĞERİ !!!
          flag=0 'Not touch
     Else
          flag=1 'Touch
     EndIf
     TMR1L=%00000000
     TMR1H=%00000000
     CPSCON0.7=1
     Return

End

pwm.c

Alıntı yapılan: styx75 - 03 Ocak 2016, 23:55:35
selam sayın pwm.c  sistemi birebir kurdum isis ortamında çalıştıramadım, bende program blokları arasına gösterge ledleri ilave ettim sonuç programın akışı zamanla yavaşlıyor.kodlar devre şemasını ekledim ustalar yardım ederse sevinirim.kusura bakmayın kod ekleme aktif olmadı bende.

proteusta olmuyor bu. gerçek devreye kurarsan sorunsuz işliyor.
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

mg1980

Nazmi Hocam,
Daha önceki yardımlarınız için tekrar teşekkür ederek bir soru sormak istiyorum. Yukarda verdiğiniz kodlarda hex kodu bölümünde uzun uzun yazılanların kullanımının nasıl olduğunu sorsam ayıplamazsınız değil mi ? Yani bunları pic'e yükleme programının ekranına mı yapıştırmak gerekiyor ? Saygılar.

styx75

benimde düşündüğüm gibi teşekkürler

pwm.c

#12
Alıntı yapılan: mg1980 - 04 Ocak 2016, 16:00:25
Nazmi Hocam,
Daha önceki yardımlarınız için tekrar teşekkür ederek bir soru sormak istiyorum. Yukarda verdiğiniz kodlarda hex kodu bölümünde uzun uzun yazılanların kullanımının nasıl olduğunu sorsam ayıplamazsınız değil mi ? Yani bunları pic'e yükleme programının ekranına mı yapıştırmak gerekiyor ? Saygılar.

bu kodları kopyalayın sonra windows'un not defterini açıp buraya yapıştırın ve dosyayı "dosyaadı.hex" olarak kaydedin.
artık pic programlayıcınızdan bu dosyayı göstererek yazdırabilirsiniz.
aslında bunu dosya olarak ekleyecektim ama uzun vadede silinme sorunları ortaya çıkıyor. neyse, yakında web sayfama ekleyeceğim. oradan takip edebilirsiniz.

kolay gelsin.

-----------------------------------------------------------------------------

Mtouch kullanımıyla ilgili konuyu sayfama ekledim. Buyurun:
https://pwmccs.wordpress.com/2016/01/05/pic16f1827-dokunmatik-mtouch-kullanimi/
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

mg1980

İlginize teşekkür ediyoruz.