Değişken oluşturma

Başlatan fatih_0640, 26 Nisan 2008, 21:18:00

fatih_0640

arkadaşlar pic'in seri portuna  TTL olarak "0800E39A54" gibi bir verinin geldiğini düşünün bunu nasıl bir değişkenle alabilir ve işlem yapabilirim. :roll:

kadirbas

Selamlar.

Her ne kadar PIC Basic Plus ya da Proton+ bilmesem de PICler için şöyle birşey geçerlidir. Seri port için ayırdıkları 8/9 bitlik bir RX tampon bölgesi bulunmaktadır. Bundan dolayı bahsettiğiniz gibi 40bitlik bir veriyi bir kerede alamazsınız.

Verileri tek tek alıp bir dizi içine atmanız gerekiyor sanırım. Tam olarak emin olmasam da, PIC Basic Plus dilinde C'deki gibi yapı türlrinin olmadığını fakat diziler oluşturabileceğinizi biliyorum.

Bu arada işlem yapmaktan kastınız toplama, çıkartma, çarpma, bölme gibi işlemlerse, sanırım kendiniz yeni bir veri türü tanımlamanız ve bunun üzerindeki işlemleri de yeniden fonksiyonel olarak tanımlamanız gerekecek..

İyi çalışmalar...

fatih_0640

anlatmak istediğinizi anladım, bir dizi oluşturup bu bilgileri sırası ile dizilere kaydetmem gerekiyor sanırım. işlemden kastım bunu hafızaya yazma vs .

fatih_0640

;) Arkadaşlar çözdüm sorunu, sizlerlede paylaşmak istedim. Benim örnekte verdiğim gibi bir veriyi seri porttan almak istiyorsanız dizi leri kullanmanız gerekiyor. kaç byte lik veri alacaksanız o sayılık bir dizi oluşturmanız gerekir. örneğin 10 byte lik bir veri için 10 luk bir dizi oluşturmanız gerekir. örnek kodum aşağıda:

Device = 16F877
XTAL = 4
LCD_DTPIN = PORTD.4   
LCD_RSPIN = PORTD.2
LCD_ENPIN = PORTD.3
LCD_INTERFACE = 4   
LCD_LINES = 2
LCD_TYPE = 0
DelayMS 200
Declare RSIN_PIN PORTC.7
Dim GELEN[10] As Byte
ANA:
RSIn Str GELEN
Print At 1,1,"gelen=",GELEN[0],GELEN[1],GELEN[2],GELEN[3],GELEN[4],GELEN[5],GELEN[6],GELEN[7],GELEN[8],GELEN[9]
DelayMS 500
GoTo ANA                            
End

bu kısa programda seri portta 10 byte lik veri tamamlanınca ekrana yazdırıyor. renkli yazdığım yerler programın kısa ama önemli noktaları. bu RSIn Str GELEN kodunu yeni öğrendim bence çok önemli bir kod. herkeze kolay gelsin. :lol:

Maxim

ama ben böyle`de kullanabiliyorum ?
gerçi bu hardware usart ama fark etmemesi lazım

Verici
DIM VERI AS WORD
HRSOut "TEST",Dec VERI,13,10



Alıcı
DIM VERI AS WORD
HRSin Wait ("TEST") ,Dec VERI

muhittin_kaplan

Başka Başlık Açmadan ve Spamlamadan Bir Soru Sorabilirmiyim
Seri iletişim Asenkron iletişim Yapıyor ve Komutu (Gönderme) Hrsout bunun senkron olanı Shout bu senkron olabın hızını ayarlayabiliyormuyum
default olan çok hızlı bir şeklide gönderiyor

fatih_0640

Alıntı yapılan: "muhittin_kaplan"Başka Başlık Açmadan ve Spamlamadan Bir Soru Sorabilirmiyim
Seri iletişim Asenkron iletişim Yapıyor ve Komutu (Gönderme) Hrsout bunun senkron olanı Shout bu senkron olabın hızını ayarlayabiliyormuyum
default olan çok hızlı bir şeklide gönderiyor

hocam bende proton nun kitabı var şu ünlü help türkçe çevirisi, orada baktım hız ile ilgili bir deklare yok sadece kaç byte alabileceğini ayarlayabiliyorsun sanırım.

fatih_0640

Alıntı yapılan: "maxiboost"ama ben böyle`de kullanabiliyorum ?
gerçi bu hardware usart ama fark etmemesi lazım

Verici
DIM VERI AS WORD
HRSOut "TEST",Dec VERI,13,10



Alıcı
DIM VERI AS WORD
HRSin Wait ("TEST") ,Dec VERI

evet bu çözümde güzel bunuda öğrenmiş olduk. protonda neden bu kadar çok çeşitli seriport iletişim kodu varki. proton bence basic derleyicisine göre çok üstün ama bence insanlar bu programdan çekiniyor, çünkü yeterince türkçe kaynak yok. Ha birde unutmadan ETE hoca basic ile ilgili bir seri ders hazırladığı için insanlara basic daha basit geliyor sanırım. bence Bu protonu bilen arkadaşlarla ortak bir ders serisi hazırlasak çok süper olacak.