Merhabalar..
Sahada serout komutları sorun çıkarttığı için donanımsal olarak HSEROUT komutunu kullanmaya karar verdim fakat isiste sıkıntı yaşıyorum realde devre üzerinde denemeler yapmadım fakat isiste iki pic'i birbirine bağladığımda gönderdiğim datayı karşı tarafta alamıyorum pic'İn pinleri data gönderimi esnasında sarı olup duruyor sanırım kısadevre gibi oluyor.
İki pic'in bağlantısını kesip verici kısım'a isisteki virtual terminal bağlayıp dinleme yaptığımda datanın çıkışını okuyabiliyorum fakat iki pc'i birbirine bağladığımda sorun yaşıyorum..
Gözümden kaçan birşeyler mi var bulamadım bir türlü..
Device 16F628A
XTAL 20
'Config FOSC_HS,,MCLRE_OFF,LVP_OFF,WDT_OFF,PWRTE_ON,BODEN_OFF
Config FOSC_HS, WDTE_OFF, PWRTE_ON, MCLRE_OFF, BODEN_ON, LVP_OFF, CPD_ON, CP_ON
'SPBRG=129
'Declare HSERIAL_BAUD=2400 'MAXIBOOST
'Declare HSERIAL_RCSTA=$90 'MAXIBOOST
'Declare HSERIAL_TXSTA=$20 'MAXIBOOST ' 20MHZ
'Declare HSERIAL_CLEAR=On 'MAXIBOOST
'Declare HSERIAL_SPBRG=129 'MAXIBOOST
SPBRG= 129
Declare Hserial_Baud = 2400 ' Set baud rate to 9600
Declare Hserial_RCSTA = %10010000 ' Enable serial port and continuous receive
Declare Hserial_TXSTA = %00100100 ' Enable transmit and asynchronous mode
Declare Hserial_Clear = On ' Optionally clear the buffer before receiving
Declare Hserial_SPBRG= 129
CMCON=7 '16F628 de komparatör pinleri iptal hepsi giri? çyky?
'PORTB_PULLUPS = 1
OPTIMISER_LEVEL = 2
WARNINGS = OFF
TRISB=%00000000
TRISB=0
PORTB=0
TRISA=%00000000
TRISA=0
PORTA=0
'------------------------------------------------------------------------------
SYMBOL LED = PORTB.5
SYMBOL BUZZER = PORTB.7
SYMBOL INPUT_1 = PORTB.6
SYMBOL CALISMA_MODU = PORTB.0 ' "1" OLURSA ALICI "0" OLURSA VERICI MODU
SYMBOL RF_TX = PORTB.2 ' PİC'İN TX UCU
SYMBOL RF_RX = PORTB.1 ' PİC'İN RX UCU
SYMBOL RELAY_1 = PORTB.3
SYMBOL RELAY_2 = PORTB.4
OUTPUT RELAY_1
OUTPUT RELAY_2
OUTPUT BUZZER
OUTPUT LED
OUTPUT RF_TX ' RF MODÜLÜN TX İNE
INPUT RF_RX
INPUT INPUT_1
INPUT CALISMA_MODU
LOW BUZZER
DIM VERI AS BYTE
DIM A as byte
VERI=0
ALICI_MOD_CALIS:
IF PORTB.0=1 THEN VERI = 10 : GOSUB RF_DATA_GONDER
DELAYMS 1000
GOTO ALICI_MOD_CALIS
'***************************************************************************************
'***************************/ ALT PROGRAMLAR /******************************************
beep:
High LED
High BUZZER
DelayMS 100
LOW BUZZER
Low LED
DelayMS 89
High LED
HIGH BUZZER
DelayMS 39
Low LED
LOW BUZZER
DelayMS 10
Return
RF_DATA_GONDER:
DELAYMS 10
HSerOut [Rep $AA\5,Rep $00\5,Rep $FF\5]'uyandirma sinyali preambl
HSerOut ["X",Dec VERI]
DELAYMS 10
VERI=0
RETURN
alıcı kısım:
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2014 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 02.09.2014 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
Device 16F628A
XTAL 20
'Config FOSC_HS,,MCLRE_OFF,LVP_OFF,WDT_OFF,PWRTE_ON,BODEN_OFF
Config FOSC_HS, WDTE_OFF, PWRTE_ON, MCLRE_OFF, BODEN_ON, LVP_OFF, CPD_ON, CP_ON
Declare LCD_DTPIN PORTB.4 'DATA giri?i PORTB'nin 4. ucundan ba?layacak
Declare LCD_ENPIN PORTB.3 'LCD'nin ENable ucu
Declare LCD_RSPIN PORTB.0 'LCD'nin Register Select ucu
Declare LCD_INTERFACE 4 'LCD veri yolu 4 bit olacak
Declare LCD_LINES 2 'LCD 2 sat?rdan olu?uyor
Cls
'SPBRG=129
'Declare HSERIAL_BAUD=2400 'MAXIBOOST
'Declare HSERIAL_RCSTA=$90 'MAXIBOOST
'Declare HSERIAL_TXSTA=$20 'MAXIBOOST ' 20MHZ
'Declare HSERIAL_CLEAR=On 'MAXIBOOST
'Declare HSERIAL_SPBRG=129 'MAXIBOOST
SPBRG= 129
Declare Hserial_Baud = 2400 ' Set baud rate to 9600
Declare Hserial_RCSTA = %10010000 ' Enable serial port and continuous receive
Declare Hserial_TXSTA = %00100100 ' Enable transmit and asynchronous mode
Declare Hserial_Clear = On ' Optionally clear the buffer before receiving
Declare Hserial_SPBRG= 129
CMCON=7 '16F628 de komparatör pinleri iptal hepsi giri? çyky?
PORTB_PULLUPS = 1
OPTIMISER_LEVEL = 3
WARNINGS = OFF
TRISB=%00000000
TRISB=0
PORTB=0
TRISA=%00000000
TRISA=0
PORTA=0
'------------------------------------------------------------------------------
SYMBOL LED = PORTB.5
SYMBOL BUZZER = PORTB.7
SYMBOL INPUT_1 = PORTB.6
SYMBOL CALISMA_MODU = PORTB.0 ' "1" OLURSA ALICI "0" OLURSA VERICI MODU
'SYMBOL RF_TX = PORTB.2 ' PİC'İN TX UCU
'SYMBOL RF_RX = PORTB.1 ' PİC'İN RX UCU
SYMBOL RELAY_1 = PORTB.3
SYMBOL RELAY_2 = PORTB.4
OUTPUT RELAY_1
OUTPUT RELAY_2
OUTPUT BUZZER
OUTPUT LED
'OUTPUT RF_TX ' RF MODÜLÜN TX İNE
INPUT PORTB.1
INPUT INPUT_1
INPUT CALISMA_MODU
LOW BUZZER
'LOW RF_RX
DIM VERI AS BYTE
VERI=0
PRINT AT 1,1,"VERI= ",DEC4 VERI
ALICI_MOD_CALIS:
hSerIn [WAIT ("X"),DEC VERI ]
PRINT AT 1,1,"VERI= ",DEC4 VERI
GOTO ALICI_MOD_CALIS
'***************************************************************************************
'***************************/ ALT PROGRAMLAR /******************************************
beep:
High LED
High BUZZER
DelayMS 100
LOW BUZZER
Low LED
DelayMS 89
High LED
HIGH BUZZER
DelayMS 39
Low LED
LOW BUZZER
DelayMS 10
Return
Bu durum neyden kaynaklı olabilir sizce ?
ilk gözüme ilişen hata Rx pinin giriş yapılaması. İki taraftada Portb.1(Rx) çıkış olarak atanmış.
yok hocam mevcut paylaştığım programda hepsi input olarak atanmış hatta sizden sonra hepsini kaldırıp denedim yine bir değişiklik yok..
Birinin rx i diğerinde txe bağlı değil mi?
aynen hocam...Sorun belki çok saçma bir yerden çıkacak ama kilitlendi kaldım uykusuzlukta bi yandan kafam iyice allak bullak oldu.eve gideyim şema vs. yükleyeceğim.
isis dosyası ile birlikte verirsen bakmak isterim mustafa
TRISB=%00000000
TRISB=0
PORTB=0
Olan kısmı
PORTB=0
TRISB=%00000010
şeklinde değiştirince olay çözüldü.
Alıntı yapılan: Mucit23 - 02 Eylül 2014, 20:48:59
ilk gözüme ilişen hata Rx pinin giriş yapılaması. İki taraftada Portb.1(Rx) çıkış olarak atanmış.
dediklerin aklıma geldi programdaki trısler hiç dikkatimi çekmedi.
INPUT RF_RX
yazdığım için hep giriş yaptım diye düşünüyorum.Sonradan tris yazmaçları gözüme takılınca iş çözüldü.