PIC 79bit data okumak

Başlatan kartal0689, 03 Haziran 2015, 15:22:12

kartal0689

Arkadaşlar,

array olarak 0..48 bitlik bir datam var.

InputData    : array [0..78] of byte =(0,1,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0);


Bu datayı pic ile nasıl okurum.

Bu data geliyorsa bir pini high yapacağım. Gelmiyorsa ya da yanlış geliyorsa Low olacak.

jrcapa

#1
Dizi elemanlarını 8'er bit ayır. 48 bit data için 6 ayrım olur. Bu 6 tane 8 biti ayrı ayrı desimale çevirip topla. En sonunda da toplamı "LongToStr " gibi uygun olan bir dönüşüm yaparak yeni bir diziye at. Bu yeni dizi elemanlarını karşılaştırmak kolay olacaktır.

Dizinin ilk 8 bitinin (elemanının) desimale dönüştürülmesi:
ayrım1 =  data[0]*128 + data[1]*64+ data[2]*32+ data[3]*16 + data[4]*8+ data[5]*4+ data[6]*2+ data[7]*1

Data nerden geliyor bilmiyorum ama CRC kontrolu gerekebilir.

ete

Bu48 bitlik data hangi formatta pic e ulaşıyor. Daha öncede bu konuya kafa yormuş ve her ne hikmetse gelen bilginin seri yani RS232 formatı ile yollandığını varsaymıştım. Halbuki başka alternatiflerde mevcut. Örneğin one wire formatı yada SPI formatı yada özel format. Kısaca bu bilgi zaman bazındamı yollanıyor yoksa bit bazındamı. İşin içine her halukarda bir zaman faktörü girmesi gerek diye düşünüyorum. Zira örneğine bakarsak %01011... Şeklinde gelen bilgiyi bit bazında alabilmek için her bir bit in süresinide bilmek gerekir . Çünki üst üste yollanmış aynı bitleri zaman faktörü olmaz ise işlemci ayırd edemez ve onu tek bit gibi değerlendirir. Bu nedenle bu soruyu  bana kalırsa gelen sinyali bir skop yada lojik analizör ile değerlendirerek mümkünse sinyalin şeklinide buraya koyarak sor. Aksi taktirde soru bir temele dayanmadan sorulduğu için cevaplarda yüzeysel olacaktır.
Örneğin benimde daha önceden önerdiğim şekilde gelen bilgiyi 8 er bitlik bölümlere ayıracağımızı düşünelim.
Bu bilgi bir CLK eşliğinde gelmiyor ise nasıl ayırd edeceğiz bit leri birbirinden. Neredeyse imkansızdır bu.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com