Komütatör kullanımı hakkında soru

Başlatan hgungor, 02 Eylül 2014, 17:34:31

hgungor

Merhaba arkadaşlar, daha önce button kullanarak pic ile bazı led yakma söndürme çalışmaları yapmıştım ama benzer bir işlemi bir üç kademeli sonsuz komütatör ile yapamadım.

Yapmak istediğim şey şu aslında 3 adet ledi  , üç kademesi olan ama sürekli dönen başı sonu olmayan bir komütatör ile yakmak,
Komütatörün sırasıyla uçlarını Porta1,porta2 porta3 e bağlıyorum, komütatör porta1 de iken  portb1 e bağlı ledin yanmasını istiyorum, komütatörü porta2 ye aldığımdada portb2 nin yanmasını istiyorum , b1 deki led yazdığım programa göre sönmüyecek gibi yazmışım çok önemli değil şimdilik.

Yazdığım program sanki komütatör ykmuş gibi davranıyor, ilk baştaki komütatörü denetleyen döngüden hiç çıkmıyor, test amaçlı o döngü içine porb4  ledini yakıp söndüren komut yazdım led sürekli yandı söndü hiç test1,2,3 e dallanmadı.

Yardımcı olacak arkadaşlara şimdiden teşşekkür ederim.

bağlantı şemasını çizmye çalıştım
[IMG]http://i61.tinypic.com/2jca87l.jpg[/img]

program

LIST   P=16F628A
INCLUDE   "P16F628A.INC"
__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _BODEN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF


delay2 EQU 0X35
DELAY1 EQU 0X38

BCF STATUS,RP1
BSF STATUS,RP0
MOVLW B'001110' ; a1,a2,a3 GİRİŞLER
MOVWF TRISA
MOVLW B'00000000'   ; B PORTU ÇIKIŞ
MOVWF TRISB
BCF STATUS,RP0

AA

BTFSS PORTA,1
GOTO TEST1

BTFSS PORTA,2
GOTO TEST2

BTFSS PORTA,3
GOTO TEST3

CALL DELAY
GOTO AA

TEST1
BSF PORTB,1
CALL DELAY
BCF PORTB,1
GOTO AA

TEST2
BSF PORTB,2
CALL DELAY
BCF PORTB,2
GOTO AA

TEST3
BSF PORTB,3
CALL DELAY
BCF PORTB,3
GOTO AA

DELAY              ; GECİKME
movlw D'200'
movwf delay2
LOOP
MOVLW D'255'
MOVWF DELAY1
LOOPP
DECFSZ DELAY1,1
GOTO LOOPP
decfsz delay2,1
goto LOOP
RETURN

END

RaMu

16f628a nın datasheet ine bakarsan,
input output port kısmında
porta için comparatörün bu portu ortak kullandığını söyler,
ve bu port açılışta comparatöre aittir,
yani portu giriş çıkış yapabilmek için comparatörü kapatman gerekir,
yine datasheet te örnek program verilmiş,
CLRF PORTA ;Initialize PORTA by
;setting
;output data latches
MOVLW 0x07 ;Turn comparators off and
MOVWF CMCON ;enable pins for I/O
;functions
BCF STATUS, RP1
BSF STATUS, RP0 ;Select Bank1
MOVLW 0x1F ;Value used to initialize
;data direction
MOVWF TRISA ;Set RA<4:0> as inputs
;TRISA<5> always
;read as '1'.
;TRISA<7:6>
;depend on oscillator
;mode


Bu genel bir problem,
bu ve 16f628a nın porta,4 pinini high yapamama
her zaman sorulur.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

hgungor

Acemilik,cahillik ve tecrübesizliğin gözü kör olsun diyorum başkada bişey demiyorum :)

Çok teşekkürler Ramu sorun çözülmüştür sayende.