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,417
Mesajlar
917,454
Kullanıcılar
450,325
Son üye
emirrumus
Geri
Üst