9 byte bilgi

Başlatan coco, 18 Eylül 2018, 22:28:16

coco

Merhaba
9 byte bilgiyi 9600 baund rate ve 1600 delay ile karşı tarafa max485 ile gönderiyorum fakat doğru bilgileri göndermeme rağmen karşı taraf hiç tepki vermiyor

seri port programıyla arada max232 ve max 485 ile bilgiler doğru geldiğini görüyorum .Pause 1600
yaparak bekleme yapıyorum bundan dolayı çalışmıyor olabilirmi?


@ DEVICE pic16F628A 'işlemci 16F628A 
@ DEVICE pic16F628A, WDT_on 'Watch Dog timer kapalı
@ DEVICE pic16F628A, PWRT_ON 'Power on timer açık
@ DEVICE pic16F628A, PROTECT_OFF 'Kod Protek kapalı
@ DEVICE pic16F628A, MCLR_off 'MCLR pini kullanılıyor.
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT 'Dahili osilatör kullanılacak
'------------------------------------------------------------------------------
INCLUDE "MODEDEFS.BAS"
CMCON=7           
OPTION_REG.7=0   
PortA=0
TrisA=%00000000
PortB=0
TrisB=%00000000
'------------------------------------------------------------------------------
SYMBOL CIKIS=PORTA.0

VER    var  byte
'------------------------------------------------------------------------------

BASLA:VER=0


        SEROUT CIKIS,84,["70","90","81","70","11","22","70","12","18",ver]
       PAUSE 1600
GOTO BASLA
END

ta3usl

Merhaba,

bu kısım veri gönderiyor , veri alıp tepki vermesini istediğin kısmın kodlarını da gönderirsen daha iyi yorum yapılabilir.

ete

Öncelikle alıcı kodlarında bakmak gerek. Zira gönderme biçimin garip ama alıcıda ne gibi bir mantık kullandın onuda görmek gerek.
Her şeyden önemlisi programında kaç Mhz hızla çalışıdığı belirtilmemiş. Bu durumda işlemci yada derleyici şaşırabilir. Yanlış bir hız değeri seçebilir. Malum seri iletişimde gönderilecek bitler zaman paylaşımı yapılarak gönderilir ve buda işlemci frekansına göre hesaplanır.
Garip biçim derken "70" şeklinde rakamların çift tırnak içinde gönderilmesini kast etmiş idim.
Sonuçta sistem rakamlarla çalışıyor. Bizim bilgi yollarken kullandığımız mantık da;
- Rakam gönderecek isek #Rakam,  Örnek vereyim #70 dediğin zaman karşıya yalnızca 70 rakamı yollanır.
- Rakamı ASCII karekterler olarak göndermek istersek , RAKAM şeklinde yollanır ki burada önce 7 rakamının ASCII karşılığı ardından da sıfır rakamının ASCII karşılığı peş peşe yollanır.
- Bir karekter gönderecek isek "A" şeklinde yollarız ki buda karşıya 65 olarak yollanır.
Seinin kullandığın mantıkta ise karşıya "70" şeklinde bilgi gönderirsen karşıya ne yollanır açıkçası bilemiyorum.
Bence burası yanlış ama yanlış diyebilmem için kafandan ne geçiyor onuda bilmem gerekir.

Ete

Powered by EzPortal