Dijital Bilgi Seçme(Dönüştürme)

Başlatan SCHOTTKY, 05 Aralık 2004, 16:40:07

SCHOTTKY

Merhaba arkadaşlar.Bizim bir okul projemiz var.Bu projede 60 tane BIT i dijital olarak seçmemiz gerekiyor.Yani 60 tane birbirinden bağımsız 1 ve 0 bitleri var.Bunların özelliği ise karışık olmamaları mesela diyelim ilk 24 bit 1 ise diğer 36 bit ise 0.Yani belli bir yere kadar hepsi 1 diğer kalanların ise hepsi 0.

Şimdi benim yapmak istediğim işlem bu 1 olan bitlerin en snuncusunu bulup dijital olarak kaçıncı sırada olduğunu 6bit üzerinden göstermek.

Örnek:

11111111111100000000

Burada ilk 12 hane 1.En son 1 hanesi 12 nolu bit olduğuna göre
bana seçiciden 6bitlik 001100 değerinin dönmesi gerek.Bu işlemi nasıl yapabilirim?Nereden araştırabilirim?

İlginiz için teşekkürler.

Erol YILMAZ

Asenkron veri iletisimi mi kullaniliyor?
Baslangic nasil anlasilacak? Preamble mi ne diyorlardi...?
asenkron ise Baud rate?

Degilse protokol nedir?
Bunlari soylersen gerisi kolay...

sertac2003

yukarıdaki örnekte son 1 olan bit diyelimki 12nci olan;
12nci bite gelene kadar bir registeri 1er 1er arttrarak sıfıra geçtiği andaki
register değeri ihtiyaç duyulan sayı demektir. fakat burada;
iki bit arasındaki sürenin bilinmesi gerekiyor.
onuda yazarsan yardımcı olmaya çalışalım.
Şirketteki herkes en üst yöneticinin müşterisidir.

bsivgin

8 bitlik bir yukarı sayıcı kullanabilirsin (255'e kadar sayar) bunun clock girişine 1 olarak belirlediğin bitin süresinde bir clock verirsin gelen verinide sayıcının reset girişine bağlarsın. Yani 1 değin bit  1 saniyelik bir süreyi kapsıyorsa, sayıcının clock girişine 1 hz lik bir clock darbeleri uygularsın. Mesela 10 tane bir varsa sayıcı 10 saniyede 10 clock alıcağı için 10'a kadar sayar 11. bilgi sıfır olunca sayıcın resetlenir. Tekrar bir bilgisi gelmeye başlayınca tekrar saymaya başlar. Diğer arkadaşlarında söylediği gibi burda 1 bilgisinin süresi önemli

Saygılarımla
Bülent ŞIVGIN

peko

Bu dediğin data network hattından gelen subnet bilgisini tespit etmek içinmi ?
" Bazıları zeka'sını iş'i zorlaştırmak için, bazıları ise kolaylaştırmak için kullanır.. "

SCHOTTKY

Bu proje dinamik veri iletişimi ile ilgili bir proje değil.Sadece sensörler yardımıyle elde edilen analog değer dijitale çevriliyor ve ortaya yukarıda bahsettiğim gibi ikilik düzende sayılar çıkıyor.Hızın hiçbir önemi yok, anlık veriler önemli.

Kısaca şöyle anlatayım;
sensörlerden alınan analog değerler dijitale çevriliyor ve ortaya böyle sayılar çıkıyor.Ben de bu sayıları 6 bit de dijital olarak göstermek istiyorum.

Daha fazla bilgi veremiyorum çünkü projemiz orijinallik esasına dayalı ve tescil etme olasalığı söz konusu.Açıklarsam hocam ile ram hiç de iyi olmaz, kusura bakmayın.Anlayışla karşılamanızı rica ediyorum.

peko

https://www.picproje.org/index.php/topic,4131&postdays=0&postorder=asc&start=0

Bu başlık altında bi port çoğullama ile uğraşmıştık, uğraşıyoruz da.!
seninde incelemeni isterim, fikir vermesi amacıyla.
Öncelikle 60 bit olan verini 74151 ile bi pic'e girdiğimizi düşünelim,böylece seçici kullanıp gelen 6 bit veriyi tekrar değerledirmeye almaktansa yazılımda değerlendirip ne istiyorsan yaptırabilirsin.  
:arrow:  60 bit içeri, istekler dışarı   8)  
bence en ucuz maliyetli yöntemide bu, hoca'da bayılır..
" Bazıları zeka'sını iş'i zorlaştırmak için, bazıları ise kolaylaştırmak için kullanır.. "

Veli B.

Şunları anlayamadım;
-Bu 60 bit katar şeklinde mi? Yani ilk 20 bit 100us gelip 400-500us sonra başka bir grup gelip 60 bit tamamlanınca mı işlem başlayacak.adc sonuçları sanırım 10 bit ve bir şekilde dönüşümün senkron olması zorunlu.
daima 1. sensör,2.sensör.......6.sensör şeklinde.Bu senkronizasyonu ne ile sağlıyorsunuz.MCU mu?  
-Önce daima 1 ler mi geliyor.
-Daima 1 oluyor mu,bazen sonuç tamamen sıfırlardan yada birlerden oluşabiliyor mu?

SCHOTTKY

Ben daha önceden bu işi yazılımla yapmayı düşündüm hatta tamamen karar verdim ki acaba daha pratik ve daha ucuz maliyetli bir yöntem var mıdır diye merak ettim.Çünkü yazılımla yapmak kolay ama sırf bu iş için iki tane 16F877 entegresine ihtiyaç var(karaköyde ikisi 10 milyon).Ve toplam maliyet de bununla sınırlı değil.

Biraz daha araştırma yapayım sonra tam olarak karar vereceğim.

Yardımlaırnız için teşekkürler.

Veli B.


diot

Arkadaşım  eğer kullandığın60 adet bir paralel olarak geliyorsa paralel giriş seri çıkışlı shift registerler var 60 biti yüklersin tektek clock verip sri çıkıştan 1-0 mı kontrol edersin ve 1 leri sayarsın.

DumrulBey

Merhaba,

Bir kaç kez okumaya çalışsam da tam olarak ne yapmak istendiğini anlamış değilim. Herhalde ucuz bir çözüm yöntemi aranıyor. Çünkü çözüm yöntem çok. Ama 60 sayısı da çok o yüzden basit bir yöntem bulmak lazım.

Aklıma ADC kullanmak geldi. Bu uçları dirençler ile öyle bir bağlayalım ki gelen akımı veya gerilimi ölçerek bulalım. PIC'in ADC çözünürlüğü 1Kbit olduğuna göre yaklaşık 16 birimlik (1024/64) bir aralıkta istenen değer bulunabilir diye düşünüyorum ve hala düşünmeye devam ediyorum. Evet, bu çıkışları nasıl bir şekilde bağlayalım?

Başarılar...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)

fsan

merhaba
asagidaki sema 64 bitlik giris elde etmek icindir.


girisleri scan etmek icin asagidakine benzer bir kod yazilabilir.

for n = 0 to 3
low n
for cnt = 0 to 15
porta = cnt
pause 1
data = porta.5
if (n = 3) and (cnt = 11) then exit_loop
next
high n
next

exit_loop:
** 60 giris scan edildi ve program buraya dallandi

kolay gelsin

peko

" Bazıları zeka'sını iş'i zorlaştırmak için, bazıları ise kolaylaştırmak için kullanır.. "

SCHOTTKY

Teşekkürler fsan ben bu shift register olayını kendim hallettim çok basit bir yöntemle.Şimdi de bu 60 biti 6bitlik dijital sinyale diyotmatris ile mi yoksa entegreyle mi çevirsem diye düşünüyorum.:ünkü diyot matrisin maliyeti daha düşük olur zannedersem.