Dökümanlar - Makaleler ve Projeler => Üye Projeleri => Konuyu başlatan: onurinci - 03 Mart 2025, 00:34:25
Başlık: Tuş'a basma aparatı sorunu
Gönderen: onurinci - 03 Mart 2025, 00:34:25
Hocam selam
bir müzik player cihazının tuş takımına iki adet Optokuplör ile komut veriyorum , program tamda istediğim gibi çalışıyor sorun yok, Pot'tan ayarladığım süre kadar bir tuşa basıyor arkasından o tuşu bırakıp , diğer bir tuşa kısacık basıyor. gayet güzel çalışıyor. fakat Programda GPIO.2 heba olmuş , bana lazım o port , orada tuş vardı tuş'u kaldırdım , bir türlü GPIO.2 yi geri kazanamadım o satırlara dokunursam program çalışmıyor.bir yardım.......
DEFINE OSC 4
DEFINE OSCCAL_1K 1
#CONFIG
#LIST_12F675
__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _BODEN_OFF
#ENDCONFIG
TRISIO= %00000001 : GPIO= 0 : CMCON= 7 : VRCON.7= 0 : ANSEL= %00110011 : ADCON0= %10000011
OPTION_REG.7= 0 : WPU= %00000000
DEFINE ADC_BITS 10
DEFINE ADC_CLOCK 3
DEFINE ADC_SAMPLEUS 50
RAW VAR WORD
LAP VAR WORD
Time VAR WORD 70
SN VAR BYTE
GPIO.2= 1
SYMBOL LED= GPIO.1
SYMBOL ATT= GPIO.5 : ATT= 0
PAUSE 300
Start: ; *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*
ADCIN 0,RAW
LAP =((RAW)*/50)/5 + 5 ; Calcul
CNT: ;--------------------------------------------------------------------------
pause 100
Time= LAP
T1CON= %00000001 'Timer Divide by 1/1 active
SN= 0
ATT= 0 ;--------
LED= 1
CNT1: ;-------------------------------------------------------------------------
TMR1H= $0B : TMR1L= $DC ' Timer Preset Value
' Interrupt 500mS Time
PIR1.0= 0 ' Flag Zeroing
WHILE PIR1.0= 0
IF GPIO.2= 0 THEN
ATT= 1 : LED= 0 : T1CON= 0
ENDIF
WEND
SN= 1-SN : IF SN= 1 THEN CNT1
Time= Time -1
IF Time >0 THEN CNT1
ATT= 1 : LED= 0 : Pause 300
ATT= 0
end
Başlık: Ynt: Tuş'a basma aparatı sorunu
Gönderen: İlyas KAYA - 03 Mart 2025, 04:28:01
TRISIO= %00000101
Deneyin
Başlık: Ynt: Tuş'a basma aparatı sorunu
Gönderen: onurinci - 03 Mart 2025, 11:45:45
@İlyas hocam o portu kullanabilmem için aşağıdaki
IF GPIO.2= 0 THEN
ATT= 1 : LED= 0 : T1CON= 0
ENDIF
IF ENDIF şartlarından kurtulmam lazım , onları ellediğim zaman program görevini yerine getirmiyor sıkıntı orada..
Başlık: Ynt: Tuş'a basma aparatı sorunu
Gönderen: ete - 03 Mart 2025, 12:19:58
Sorunu tam olarak anlamadım ama şunu biliyorum. IF GPIO.2= 0 THEN komut satırını bu şekilde kullanabilmen için GPIO.2 pinin giriş olarak atanmış olması gerekir. Sende bu pin çıkış olarak gözüküyor. Dolayısıyla o pini kullanamamış oluyorsun bir yerde. Bu nedenle Ilyas'ın önerisi doğru ve programınbaşındaki TRISIO komutunu düzeltmen gerekir.
GPIO.2 pini heba olmuş ne anlama geliyor pek bilemedim. Bana çağrıştırdığı şey o pinin fiziksel olarak bozulmuş olması. Genelde giriş pinlerine yüksek voltaj gelirse giriş özelliği bozuluyor ama çoğu zaman aynı pini çıkış yapınca çıkış olarak çalışıyor. Bu durumda GPIO.2 pini bozuk ise ne yapmayı düşünürsün?. Bence o pin çıkış olarak çalışıyor ise Led pinlerinden birini giriş yapıp GPIO.2 nin fonksiyonunu ona aktarıp GPIO.2 yi led pini olarak kullanman.
Ete
Başlık: Ynt: Tuş'a basma aparatı sorunu
Gönderen: onurinci - 03 Mart 2025, 17:02:25
hocam sanıyorum izah edemedim, program görevini yerine getiriyor.eskiden timer başlasın diye basmalı buton vardı , onu iptal ettim. MCU'ya enerji verdiğimde timer başlıyor ve görevi bittiğinde duruyor, ta ki tekrar enerji verilene kadar GPIO.2 portuna eklentiler yapacağım. niye orada dursunki? ,yani kısaca GPIO.2'ye ihtiyaç olmadan program koşsun yapması gerekeni yapsın. galiba bu sefer daha net izah ettim.
Başlık: Ynt: Tuş'a basma aparatı sorunu
Gönderen: ete - 03 Mart 2025, 21:30:03
While - wend döngüsünün içini boşaltman yeterli. Mantıklı düşünürsen GPIO.2 deki tuşa basmasan sistem çalışıp süre sonunda iş bitiyor. Oradaki while- wend döngüsü tamamen 500ms lik süre dilimlerini saydırmak için koyulmuş. İçinde de birde buton kontrolü koyulmuşki butona basınca iş süresinden önce bitirilsin diye. Sen buton kontrolünü istemiyorsun o halde while'den wend'e kadar olan her şeyi sileceksin. Böylece program yine süre saymaya devam eder ama buton kontrolü yapmaz.
Ete
Başlık: Ynt: Tuş'a basma aparatı sorunu
Gönderen: onurinci - 03 Mart 2025, 21:51:18