pic 16f876 RC6 sorunu

Başlatan sefon, 15 Nisan 2016, 11:16:21

sefon

Saygı deger ete hocam bir sorunum var cozemedim ilginize simdiden tesekkr ederim
HSERIN Haberlesmesi kullanmak istiyorum haberlesmede sorun yok hersey tamam ancak 17f876 RC7 RX Pini alıcı
olarak kullandım tamam RC6 yı cıkıs olarak kullanmak istiyorum (veri trasferinde kullanmayacagım) RC6 ya baglı ledi
kontrol etmek istiyorum olmuyor neden problem bu.. ben bunu yerine PORTA.3 kullandım tamam
RC6 yı kullanmak istersem buna baglı led hep yanık kalıyor işlem yapmıyor A.3 pini degilde RC6 yi kullanmak istiyorum
kolay gelsin diyor simdiden tesekkur ederim.

'****************************************************************@ DEVICE pic16F876A 'islemci 16F876 '@ DEVICE pic16F876A, WDT_OFF 'Watch Dog timer kapali @ DEVICE pic16F876A, PROTECT_OFF 'Code Protec kapali@ DEVICE pic16F876A, LVP_OFF@ DEVICE pic16F876A, BOD_OFF@ DEVICE pic16F876A, WDT_ON 'Watch Dog timer açık@ DEVICE pic16F876A, PWRT_ON 'Power on timer açık'@ DEVICE pic16F876A, PROTECT_ON 'Kod Koruma acik@ DEVICE pic16F876A, HS_OSC 'Harici osc kullan'****************************************************************'DEFINE HSER_SPBRG 25 '(25-9600-4MHZ..BRGH=1)(64-19200-20)(21-56000-20) 'DEFINE HSER_SPBRG 16 '(16-14400-4MHZ..BRGH=1)'DEFINE HSER_SPBRG 12 '(12-19200-4MHZ..BRGH=1)'DEFINE HSER_SPBRG 6  '(6-38400-4MHZ..BRGH=1)'DEFINE HSER_SPBRG 64 '(64-9600-10MHZ..BRGH=1)'DEFINE HSER_SPBRG 32 '(32-19200-10MHZ..BRGH=1)'DEFINE HSER_SPBRG 15 '(15-38400-10MHZ..BRGH=1)INCLUDE "MODEDEFS.BAS"define OSC 10  DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receiveDEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1DEFINE HSER_SPBRG 25  ' 9600 Baud @ 4MHz, 0,16%DEFINE HSER_CLROERR 1 ' Clear overflow automaticallyDEFINE HSER_BAUD 14400 '(42-14400-10MHZ..BRGH=1)DEFINE HSER_SPBRG 42  '(42-14400-10MHZ..BRGH=1)DEFINE HSER_CLROERR 1SYMBOL GIE  =INTCON.7   SYMBOL PEIE =INTCON.6   SYMBOL RCIE =PIE1.5     SYMBOL RCIF =PIR1.5     RCIE=1: PEIE=1:GIE=1'**************************************************************SYMBOL GIRIS = PORTC.7SYMBOL LED = PORTA.1'===========================================================SYMBOL KIR1 = PORTB.0SYMBOL KIR2 = PORTB.3SYMBOL KIR3 = PORTB.6SYMBOL KIR4 = PORTC.1SYMBOL KIR5 = PORTC.4'===========================================================SYMBOL YES1 = PORTB.1SYMBOL YES2 = PORTB.4SYMBOL YES3 = PORTB.7SYMBOL YES4 = PORTC.2SYMBOL YES5 = PORTC.5'===========================================================SYMBOL MAV1 = PORTB.2SYMBOL MAV2 = PORTB.5SYMBOL MAV3 = PORTC.0SYMBOL MAV4 = PORTC.3SYMBOL MAV5 = PORTA.3'**************************************************************DON      VAR WORDAL2      VAR BYTEKART     VAR BYTEAL1      VAR BYTEAL1YD    VAR BYTEKARTYD   VAR BYTETEMP     VAR BYTE'**************************************************************OPTION_REG.7=1    TRISA=%00000000TRISB=%00000000TRISC=%10000000PORTA=0PORTB=0PORTC=0PAUSE 200CLEARON INTERRUPT GOTO KESME'*****************************************************************BASLA:       IF KARTYD = 1 AND AL1YD = 0 THEN : GOSUB TEMIZLE      IF KARTYD = 1 AND AL1YD = 1 THEN : GOSUB KIRHEP      IF KARTYD = 1 AND AL1YD = 2 THEN : GOSUB YESHEP      IF KARTYD = 1 AND AL1YD = 3 THEN : GOSUB MAVHEP      IF KARTYD = 1 AND AL1YD = 4 THEN : GOSUB KIRYAN_YESSON_MAVSON      IF KARTYD = 1 AND AL1YD = 5 THEN : GOSUB KIRSON_YESYAN_MAVSON      IF KARTYD = 1 AND AL1YD = 6 THEN : GOSUB KIRSON_YESSON_MAVYAN      IF KARTYD = 1 AND AL1YD = 7 THEN : GOSUB KIRYAN_YESYAN_MAVSON      IF KARTYD = 1 AND AL1YD = 8 THEN : GOSUB KIRYAN_YESSON_MAVYAN      IF KARTYD = 1 AND AL1YD = 9 THEN : GOSUB KIRSON_YESYAN_MAVYAN      IF KARTYD = 1 AND AL1YD = 10 THEN : GOSUB KIRYAN_YESYAN_MAVYAN     GOTO BASLA'*****************************************************************    dISABLEKESME:    GIE=0     HSERIN ATLA,[WAIT("A"),KART,AL1]   ' HSERIN ,5,ATLA,[WAIT("A"),KART,AL1]   KARTYD=KART :AL1YD=AL1ATLA:   TEMP=RCREG   RCIF=0     GIE=1        ENABLE   RESUME       goto BASLA


efsanepoldem

#1
usart kesmesi kullanırsan rc6 ve rc7 otomatik olarak rx ve tx oluyor. Dolayısı ile bu uçları kullanazsın. basic bunu otomatik olarak yapıyor. Yanlış bilmiyorsam eğer...   Farklı bir çıkışı kullanmalısın

MB_77

#2
bu mesaj tarafımdan silinmiştir.

ete

TXSTA 5 nolu biti TX enable(bit=1)  yada disable (bit=0)yapar ancak yinede disable edebileceğini sanmıyorum. Usart kullandığın zaman C.6 pini Usart'a ayrılır kullansanda kullanmasanda. Otomatikman o pin HIGH verir ve hiç bir şekilde engelleyemezsin.

Ete


Not: mesaja kod eklerken kod tag kullanın

MB_77

#4
bu mesaj tarafımdan silinmiştir.

ete

RX için oluyor ama TX için olmuyor maalesef. O pin sürekli High da kalıyor. Ancak bütün USART komutlarını silerseniz pin normale dönüyor.

Ete

sefon

ete hocam ve ilgilenen arkadaslara cok tesekkur ederim sagolun vaeolun

Powered by EzPortal