HSEROUT ile gönderdiğim veriyi alamıyorum ?

Başlatan mustafa_cmbz, 02 Eylül 2014, 20:28:14

mustafa_cmbz

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 ?

Mucit23

ilk gözüme ilişen hata Rx pinin giriş yapılaması. İki taraftada Portb.1(Rx) çıkış olarak atanmış.

mustafa_cmbz

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..

t2

Birinin rx i diğerinde txe bağlı değil mi?

mustafa_cmbz

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.

Maxim

isis dosyası ile birlikte verirsen bakmak isterim mustafa

mustafa_cmbz

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ü.