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 receive
DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
DEFINE HSER_SPBRG 25  ' 9600 Baud @ 4MHz, 0,16%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically
DEFINE HSER_BAUD 14400 '(42-14400-10MHZ..BRGH=1)
DEFINE HSER_SPBRG 42  '(42-14400-10MHZ..BRGH=1)
DEFINE HSER_CLROERR 1
SYMBOL GIE  =INTCON.7   
SYMBOL PEIE =INTCON.6   
SYMBOL RCIE =PIE1.5     
SYMBOL RCIF =PIR1.5     
RCIE=1: PEIE=1:GIE=1
'**************************************************************
SYMBOL GIRIS = PORTC.7
SYMBOL LED = PORTA.1
'===========================================================
SYMBOL KIR1 = PORTB.0
SYMBOL KIR2 = PORTB.3
SYMBOL KIR3 = PORTB.6
SYMBOL KIR4 = PORTC.1
SYMBOL KIR5 = PORTC.4
'===========================================================
SYMBOL YES1 = PORTB.1
SYMBOL YES2 = PORTB.4
SYMBOL YES3 = PORTB.7
SYMBOL YES4 = PORTC.2
SYMBOL YES5 = PORTC.5
'===========================================================
SYMBOL MAV1 = PORTB.2
SYMBOL MAV2 = PORTB.5
SYMBOL MAV3 = PORTC.0
SYMBOL MAV4 = PORTC.3
SYMBOL MAV5 = PORTA.3
'**************************************************************
DON      VAR WORD
AL2      VAR BYTE
KART     VAR BYTE
AL1      VAR BYTE
AL1YD    VAR BYTE
KARTYD   VAR BYTE
TEMP     VAR BYTE
'**************************************************************
OPTION_REG.7=1   
TRISA=%00000000
TRISB=%00000000
TRISC=%10000000
PORTA=0
PORTB=0
PORTC=0
PAUSE 200
CLEAR
ON 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

'*****************************************************************   
dISABLE
KESME:
    GIE=0
    HSERIN ATLA,[WAIT("A"),KART,AL1]
   ' HSERIN ,5,ATLA,[WAIT("A"),KART,AL1]
   KARTYD=KART :AL1YD=AL1
ATLA:
   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