Serout veya Serout2

Başlatan zoptan, 04 Kasım 2008, 21:31:13

zoptan

Pic16F84 kullanarak PC'nin seri portuna bilgi girerek bu bilgiyi delphide kullanarak işlem yapacağım. Tam olarak anlamak istediğim şeyler şunlar;
SEROUT2 PORTA.1, 396, [DEC 9] Bu komut satırı PC'ye 9 sayısının decimal karşılığını(1001) gönderiyor bildiğim kadarıyla. Peki PC bu bilgiyi aldığında ne olarak değerlendiriyor. 9 olarakmı yoksa 1001 olarakmı? Bir diğer takıldığım nokta ise Serout veya Serout2 komutuyla gönderilen bir karekteri PC nasıl algılar. Örneğin;
SEROUT PORTB.1, N2400, ["AC"] Bu komut bildiğim kadarıyla PC'ye AC karekterlerini gönderiyor. PC bu gönderilen bilgiyi ne olarak algılıyor? Aynı işlemi Serout2 içinde düşünebiliriz. Bu konularda beni açıklığa kavuşturursanız çok sevinirim. İyi çalışmalar.
Herkes Cennete Gitmek İster, Ama Kimse Ölmek İstemez.

mustafa_cmbz

benim bildiğim kadarı ile sen gelen bilgiyi nasıl değerlendirmek istersen o şekilde alırsın...mesela ascıı kod göndereceksin pc programından gelen bilgileri ascı şeklinde alacak bir program yazman gerek diye biliyorum...tabi bu kullandığın dilden dile fark eder...

zoptan

Örneğin PC'ye AC karekterleri geldiğinde Delphi'de işlem başlayacak KP geldiğinde işlem sona erecek, Buna benzer bir iş yapmak istiyorum. Ama AC ve KP karekterlerini veya 8 gibi 9 gibi rakam değerlerini PC'ye nasıl tanıtabilirim. Serout ve Serout2 komutuyla ilgili bir kaç örneğe baktım ama tam ayrıntıyı kapamadım.Tşk .
Herkes Cennete Gitmek İster, Ama Kimse Ölmek İstemez.

erkan614

serial port terminal programını kullanarak picten serotu ile seri porta gelen bilgiyi izlayebilirsin.
bu konuda bende çok cahilim bu konuyu da çok merak ediyorum

ete

Bütün aletler aslında rakamlar ile çalışırlar ve ortak kullandıkları sistemin adı ASCII sistemidir.
A harfinin karşılığı 65 dir ve bu PC içinde aynı Pic içinde aynıdır.
Siz Pic den "AC" gönderirseniz PC de bunu A ve C harfleri olarak algılayacaktır çünkü harflerin rakam karşıkları aynı olacaktır.

Dolayısıyla göndereceğiniz rakamların kodlarıda aynı olacaktır. Bu gelen yada gidenler kullanıcı tarafından değerlendirilerek rakam mı yoksa karektermi olduğuna karar verilmelidir. Kısaca pic den 49 gelmiş ise bu bunun 1 rakamı olduğuna siz karar vereceksiniz. Nasıl derseniz tabiiki karekterin ASCII karşılığının 48-57 arasında olup olmadığına bakarak bunu anlayabileceksiniz.
Hepsi Bu.
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

dombilik

öncelikle USART içeren bir pic kullanmanız ve veriyi
HSEROUT.HSERIN türü donanımsal seri arabirimi kullanan
komutlarla gerceklestirmenin daha net sonuclar verecektir.
Delphi tarafında kullandıgınız comport komponenti hangisi..cport yada apdcport...Bu tur komponentlerde öncelikle alınacak toplam karakter sayısı program icerisinde tanımlanıyor ve bu sayı adedince karakter
porttan okunuyor.Gönderilen datadaki karakter sayısı ile Delphi tarafındaki karakter sayısı uyuşmazsa alınan data larda bozulma oluyor yada programda kırılma oluşuyor...

Ete hocamın dediği gibi her karakter ASCII kodu ile byte lık veriler halinde PC ye gönderiliyor.PC tarafında veri alımından sonra tipik bir

IF degisken=`a` then     yada
IF degisken=`ab` then    seklinde

gelen karaktere göre yönlendirilme yapılabilir..
Bildiklerini kime miras bıraktın?kimseyemi? O zaman bildiklerinin ne önemi kalır. ******** /////////// ******** PROTON-ASM PROTEUS 7.4 SP3 EAGLE 5.40

zoptan

İlgilerinizden dolayı teşekkür ederim. Verdiğiniz çok değerli bilgiler ışığında sorunumu çözdüm ve projemi gerçekleştirdim.  Bana cevap yazma zahmetinde bulunan arkadaşlara teşekkürler.
Herkes Cennete Gitmek İster, Ama Kimse Ölmek İstemez.

erkan614

mumkunse pic ten yolladığınız karakterler karşılığında pc tarafında neler aldınız merak ediyorum yazarmısınız

zoptan

SEROUT2 PORTA.1, 396, [DEC 9] : bu satırın karşılığında 9 sayısını pcden aldım.
SEROUT PORTB.1, N2400, ["AC"] Bu satırın karşılığında ise AC karekterlerini aldım.
Herkes Cennete Gitmek İster, Ama Kimse Ölmek İstemez.