Seri iletişim sorunum..

0101010101

Üye
Katılım
14 Ağu 2007
Mesajlar
4
Puanları
1
Yaş
39
Merhaba arkadaşlar ben pic e rs232 den visual basic aracılığı ile veri göndermek istiyorum. Sorun şu ki 255 den daha büyük rakamlar gitmiyor. Daha büyük rakamları göndermenin bir yolu var mı ? Teşekkürler
 
Merhaba arkadaşlar ben pic e rs232 den visual basic aracılığı ile veri göndermek istiyorum. Sorun şu ki 255 den daha büyük rakamlar gitmiyor. Daha büyük rakamları göndermenin bir yolu var mı ? Teşekkürler

Sn. 0101010101

Seri port haberleşme genellikle 8 bit yapilmakta. 8 bit oldugu icinde bir kerede gonderecegin veri 255'i gecemez. Ancak ozel bir kodla 2 veya daha fazla byte (1 byte=8 bit) arka arkaya gondererek sorununu cozebilirsin. Visual basic de bunu yapmak kolaydir. Pic de ise guzel kodlar yazman lazim. Eger 8 bitten buyuk verilerin varsa ve bunlarla islemler yapacaksan (toplama cikarma vs) oldukca dikkatli olman sart. (Eldeleri unutmaman lazim.) Mesela 325 gondermek istiyorsan hex decimal olarak arka arkaya 01h ve 45h gondermelisin. Pic bu verileri alinca bu iki byte sanki bir sayi gibi dusunup islemen lazim. (145h=325 decimal)
Kolay gelsin
 
Merhabalar;
VB de word iletişim için şu yöntemleri kullanın;

VB >>> PIC (WORD data gönderimi)

Kod:
word = 1530
byte1 = Fix(word / 256)
byte0 = word - (byte1 * 256)
Byte0 ve Byte1 i seri porttan gönderim yapacaksın. PIC ise zaten hazır komutla bunu word e çevirecek
Kod:
Hserin [Word.lowbyte, Word.highbyte]

PIC >>> VB (WORD data alımı)

PIC hserout ile word değeri 2 byte olarak gönderecek
Kod:
Hserout [Word.lowbyte, Word.highbyte]
[CODE]
VB ise bu 2 byte ı alıp word e çevirecek
[CODE]
word = (byte1 * &H100) Or byte0
 
Merhabalar;
VB de word iletişim için şu yöntemleri kullanın;

VB >>> PIC (WORD data gönderimi)

Kod:
word = 1530
byte1 = Fix(word / 256)
byte0 = word - (byte1 * 256)
Byte0 ve Byte1 i seri porttan gönderim yapacaksın. PIC ise zaten hazır komutla bunu word e çevirecek
Kod:
Hserin [Word.lowbyte, Word.highbyte]

PIC >>> VB (WORD data alımı)

PIC hserout ile word değeri 2 byte olarak gönderecek
Kod:
Hserout [Word.lowbyte, Word.highbyte]
[CODE]
VB ise bu 2 byte ı alıp word e çevirecek
[CODE]
word = (byte1 * &H100) Or byte0

Merhaba ben bu verdiğin kodları pek birleştiremedim. Bu tür kodları ilkkez deneyeceğim tam yazabilirsen çok güzel olcak..
 

Forum istatistikleri

Konular
128,252
Mesajlar
916,211
Kullanıcılar
450,067
Son üye
ERENLER04

Yeni konular

Geri
Üst