seri porttan alınan veriyi olduğu gibi almak

Başlatan picpicpic, 06 Mart 2013, 23:27:38

picpicpic

Arkadaşlar seri porttan aldığım veri otomatik olarak karaktere dönüştürülüyor, mesela 105 verisi geldiğinde label1.caption=mscomm1.input dediğimde ekranda i görüyorum105 bilgisi geldiğinde ekranda da 105 görmek için nasıl bir şey yapmalıyım, kodlarım bu şekilde

Private Sub Form_Load()
MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm()
Dim a As Integer
a=mscomm1.input

MSComm1.RThreshold = 1
Label1.Caption = a
End Sub


buarada vb6.0 kullanıyorum

ÜC

#1
Private Sub MSComm1_OnComm()

Label1.Caption = asc(mscomm1.input)

End Sub

picpicpic

invalid procedure call or argument hatası alıyorum

muhittin_kaplan

integer neden tanımladın ?

dim MyValue as byte

MyValue= MSComm.Input
şeklinde denermisin.

(Uzun Süredir Kullanmıyorum vb.60 ı)

t2

Şu an vb6 lisans alıcam desen  mümkün olmaz mı acaba ? ya da, yok diye bedava hale dönüşmüş sayılır mı

muhittin_kaplan

Konuyu bombalayacağız yine.

Ne yapacaksınız VB.6 yı onun yerine Vbnet yada c# Express edition kullanın. Bedava. (Lisans ile alakalı problem varsa.)

t2

peki hocam bu  Vbnet yada c# Express edition  larda bedava olmasından dolayı bir sıkıntı yok mu? eksik kısmı nedir? ben para vermek isterim ya da korsan kullanırım bedava toolda sorun çıkar gibi görünüyor. illa ki bir yeri eksiktir.

muhittin_kaplan

#7
Eksik yerleri var tabiki. (Bir karşılaştırma vardı neler var yok gibi ama bulamadım)
Ama windows masaüstü / web / (artık cepte olmuş win8 ile birlikte) programlarını yazarsınız istediğiniz gibi.

http://www.microsoft.com/visualstudio/tur/products/visual-studio-express-for-windows-phone

mesaj birleştirme:: 07 Mart 2013, 11:41:05

http://tr.wikipedia.org/wiki/Microsoft_Visual_Studio

picpicpic

#8
bendeki vb6 lisanslı, bu sorunla alakalı herşeyi denedim ama olmuyor

mesaj birleştirme:: 07 Mart 2013, 11:50:04

Alıntı yapılan: muhittin_kaplan - 07 Mart 2013, 10:57:03
integer neden tanımladın ?

dim MyValue as byte

MyValue= MSComm.Input
şeklinde denermisin.

(Uzun Süredir Kullanmıyorum vb.60 ı)

o integer'ı denemek için koymuştum tesadüfen öyle kopyalamışım, sadece string koyarsam karakterler geliyor, string dışında ne koyarsam koyayım type mismatch diyor

muhittin_kaplan

#9
Karekter olarak okuyabiliyorsan, karekteri çevir.


mesaj birleştirme:: 07 Mart 2013, 13:12:40

access dede kod yazması zor oluyormuş :)
aşağıdaki kod z nin (dolayısıyla a nın) sayısal değerini verir.  seriporttan aldığın bilgiyi buraya eşitle

Dim i As Byte
Dim z As String
z = "a"
i = Asc(z)

picpicpic

a=mscomm1.input 'a eşittir gelen bilgi
b=asc(a) 'b ye a nın ascii değerini at diyorum
label1.caption=b ' label1'de b'yi göster diyorum

invalid procedure hatası veriyor bu şekilde yapınca, sürekli aynı bilgi gelmiyor ki, z="a" diyeyim,z'yi sabit bir karaktere eşitlemişsiniz benim gelen bilgim değişken

muhittin_kaplan

değişken tanımlamalarını vs verirmisin.
Ayrıca Program yazabiliyorsan biraz yorum yapmalısın. Ben orada z ye "a" karekterini attım. sen mscomm dan gelen bilgiyi atacaksın.

mesaj birleştirme:: 08 Mart 2013, 11:07:19

MCU dan göndermek için kullandığın  komutuda yazarmısın.

picpicpic

birşey farkettim, asc kullandığımda ilk programı açıp sonra devreyi çalıştırdığımda ilk gelen bilgide invalid procedure veriyor, ama ilk devreyi çalıştırdığımda sonra programı açtığımda düzgün çalışıyor

muhittin_kaplan

MCU programını istememdeki sebep bu. Muhtemelen gönderirken bilginin /r/n gibi next line, return gibi bilgileri göndermiyorsun. Eksik birşeyler var..

picpicpic

#14
include "modedefs.bas"
trisc=%00000001
sayi var byte
sayi=0
dongu:
serout portc.6,t2400,[sayi]
pause 50
sayi=sayi+1
if sayi=255 then
sayi=1
else
goto dongu
endif
goto dongu
end


mesaj birleştirme:: 08 Mart 2013, 11:33:31

buarada sanal com portu ile isis simülasyonu yaptığımı da söyleyeyim..

mesaj birleştirme:: 08 Mart 2013, 12:01:19

bir test yaptım, com portla alakalı olabilirmi acaba diye
rb1'e bir anahtar yerleştirdim anahtar kapanınca döngüyü başlat dedim
ilk programı açtım sonra devreyi açtım hiçbir veri gelmediği hallde hata veriyor mscomm eventine bile girmiyor, simülasyonun ortasında programı açtığımda anahtara bastığımda veriler akıyor, sorun %99 simülasyon kaynaklı, evime gidince  devremin üzerinde deneyeceğim