Manve_13 Mesaj tarihi: Nisan 1, 2010 Paylaş Mesaj tarihi: Nisan 1, 2010 Selamlar, Uzaktan kumanda ile bilgisayar kontrolü ya da röle kontrol edebilecek bir proje hazırlamaya çalışıyorum. RC5 prokolü ile çalışıyorum fakat infrared sensöründen gelen 14 biti okuyabilmek için bunların arasına koymam gereken delaylar var. Resimde biraz anlatıyor. Şimdi benim yapamadığım kısım 4.7ms ve 1.7ms delaylari ayarlayamamak. Bunu nasıl yapabilirim? Bir biti tanımlamak için hem 0 hem de 1 kullanmışlar. 0->1 ise off 1->0 ise On şeklinde. Ben bu gelen 2 bitten birini okursam işim tamam oluyor. İşte onun için de her okumadan sonra 1 bitlik delay koymam gerekiyor. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Anason Mesaj tarihi: Nisan 1, 2010 Paylaş Mesaj tarihi: Nisan 1, 2010 delay yapicak kod, micro kontroller mi yada bir pc uzerinde mi calisiyor? pc uzerindeyse hangi isletim sisteminde? Ayrica isletim sistemindeyse driver seviyesinde mi yoksa aplikasyon seviyesinde mi calisiyor? Delay kodun calistigi seviyeye gore cok degiskenlik gosterebilir ama temel olarak assemblyde Hz'i istedigin saniye cinsinden bolup (micro saniye, nano saniye gibi), o kadar "nop, rept" kombosu koyarak yapabilirsin. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Manve_13 Mesaj tarihi: Nisan 1, 2010 Konuyu açan Paylaş Mesaj tarihi: Nisan 1, 2010 Hmm ya mikrodenetleyici üzerinden delay yapacağım da. Hani delay yapmanın yolunu biliyorum da istediğim süreyi nasıl ayarlicam tam olarak ondan emin değilim. Mesela 11.0592Mhz lik kristal kullaniyorum. Bunun muhakkak bir formülü falan vardır. Delay yapma yöntemim ise bi tane değişkene 255 atıyorum djnz komutu onu caliştiriyorum ama işte kaç tane bu şekilde üst üste saydırmam gerekiyor? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
fizban Mesaj tarihi: Nisan 2, 2010 Paylaş Mesaj tarihi: Nisan 2, 2010 e soyle dusun iste, 1 mhz = 10^-6 sn demek 11000 mhz = 10^-6 sn / 11000 demek kac saniye delay yapmak istiyorsun ? diyelim ki 5. su islemi yapican 5 / (10^-6 * 11000) usendim, cikan sonuc diyelim ki 2^16 her cycle'da bir adim iniyor olmasi lazim o loop controller'inda. iki tane icice loop yazacaksan 256'dan 0'a sayacak, .. bitti bu arada microcontroller falan pek bilmiyorum teorik konusuyorum. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Anason Mesaj tarihi: Nisan 2, 2010 Paylaş Mesaj tarihi: Nisan 2, 2010 fizbanin yaptigi islem gibi ama 11 mhz 11000 degil :) eger nop komutu 1 cycle ise; 11*(10^6)*(10^-3) 1 mili saniyede yaptigi clock. 4 mili saniye icin nop .rept 44000 yanlis hesap yapmadiysak calismasi lazim. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Manve_13 Mesaj tarihi: Nisan 2, 2010 Konuyu açan Paylaş Mesaj tarihi: Nisan 2, 2010 Hmm bakalim bi tane kitapta bir formül buldum. 3 tane djnz döngüsü ile 0.5snlik bir delay ayarlamiş ona bakaraktan ben de ayarlamaya calişacağım. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Venator Mesaj tarihi: Nisan 3, 2010 Paylaş Mesaj tarihi: Nisan 3, 2010 İlk 4.7ms'likde sorun olmaz ama 1.7ms'lige direk delay koymaya çalışırsan sinyalin fazının kayması vb. problemler nedeniyle ciddi senkronizasyon problemleriyle karşılaşabilirsin. Zamanı tam tutturamazsan ya da bi şekilde phase noise yersen senkronizasyon tamamen gidebilir (kumandaya basarsın aglılamaz, bir daha basarsın algılar falan). Adamlar zaten sana sensör çıkışında bu senkronizasyon bilgisini sunmuşlar zaten. Herhangi bir zamandan sonra bir ya da sıfır okumak yerine, direk sinyalin dustugu ya da yukseldigi yerleri okuman daha mantıklı olur gibi geliyor bana. 0->1 oluyorsa ON, 1->0 oluyorsa OFF gibi. İki çift D-Flip Flop ve çok basit delay elementleri (1ms) işini görür, clock sinyali olarak bunu verirsin, girişlerine 1,0 baglayıp 1ms sonra başka bir çift d flip-flop ile bunları saklarsın. Mikroişlemcin de rahat rahat çalışabilir istediğin frekansta. FPGA ile çok kolay yaparsın. Mikroişlemcide ise daha zor çünkü aslında senin sinyal bilgini clock olarak bir register'a vermen gerekebilir. Mikroişlemcinin timer'ı varsa o da olur. Eğer olmadı basit birkaç discrete flip flop vs. ile rahat şekilde halledebilirsin. Flip olduğu anları da kaçırmamak istiyorsan 1.7ms'den biraz fazla (2ms falan olur) basit bir delay elementi koyup da, en son yükselme/alcalmadan sonra tekrar bir aksiyon gelmiş mi ona bakabilirsin. Tam zamanı tutturmaya kasmaya gerek yok bence :) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
simit Mesaj tarihi: Nisan 3, 2010 Paylaş Mesaj tarihi: Nisan 3, 2010 C'de falan direk delay_ms() falan gibi bir komut olması lazım ya. O kendisi clock işlerini falan hesaplayıp bekletiyordu. pic basic pro'da da delay 100 diyince 100ms bekliyodu mesela. assembly'de tabi yoktur nop komutuyla yardırmak gerekir de diğer dillerin kendi fonksiyonları olması lazım. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
fizban Mesaj tarihi: Nisan 4, 2010 Paylaş Mesaj tarihi: Nisan 4, 2010 Anason said: fizbanin yaptigi islem gibi ama 11 mhz 11000 degil :)eheh 11,592 die okumusum, dogru tabi 11 olacak o. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Manve_13 Mesaj tarihi: Nisan 4, 2010 Konuyu açan Paylaş Mesaj tarihi: Nisan 4, 2010 Bakalim bir şeyler yapmaya çalıştım şu açık öğretim sınavı olayları bitsin akşama bi okula gidip lab.ta deneme yapacağım. Şimdi gene her bit arasına delay koyarak yapmayı denedim. Normalde IR alıcı hep 1 verio. Ben bu sensörü INT0 ayağına bağladım ve ilk düşen kenarda program çalışmaya başlıyor ve 4 küsür ms lik bir delay yaptıktan sonra her 1.7ms de bir veri almaya çalışacağım. Delay konusunda ise şöyle bir şeyler buldum. Mesela bizim kristalimiz 12Mhz ise bunun 12de birinde bir clock üretiliyormuş. Yani her clock 1Mhz'lik bir işlem hızımız var. Onun da periyodu 1us oluyor. Djnz komutu 2 cycle sürdüğüne göre her djnzde 2us geçiyor. 4-5 tane djnz kullanarak ayarladım. Bakalım eğer böyle ise direk benim istediğim değerlerde delay elde ediyorum. Akşam görcez bakalim... Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar