data kayıt etme

Başlatan bulut_01, 20 Mayıs 2012, 01:17:23

bulut_01

ıyı geceler arkadaslar benım takıldıgım bır konu var sormak ıstedıgımı konu şuki bende bitane kumanda var ve onun kopyalamam lazım kumandanın saw gıden rf amp transıstor beyzinden scopa bagladım ve sınyallerı goruyorum swıch bastıgımda bu sınyallerın aynısını ccs nasıl bır algorıtma kullanarak yazarım ? bu sinyalin aynı sekılde görebılmem için ve yazdıgım code orj kumandası gıbı calısır mı ?



satırlardakı her voltaj 40 us temsil ediyor
0.047726
0.024243
0.024243
0.047726
0.047726
0.016415
0.024243
1.370.622
1.354.967
1.378.450
1.378.450
0.188626
0.133832
0.039898
0.039898
0.063381
0.039898
0.063381
0.024243
0.071209
0.039898
0.063381
0.047726
0.032070
0.047726
0.024243
0.039898
0.016415
0.016415
0.039898
0.047726
0.016415
0.047726
0.024243
0.047726
0.024243
0.047726
0.024243
0.024243
0.047726
0.047726
0.016415
0.039898
0.024243
0.047726
0.024243
0.047726
0.032070
0.024243
0.063381
0.024243
0.047726
0.039898
0.024243
0.039898
0.024243
0.024243
0.047726
0.047726
0.024243
0.024243
0.047726
0.047726
0.024243
0.047726
0.024243
0.047726
0.024243
0.024243
0.047726
0.032070
0.047726
0.024243
0.047726
0.047726
0.024243
0.024243
0.047726
0.047726
0.024243
0.047726
0.024243
0.047726
0.024243
0.024243
0.047726
0.024243
0.047726
0.047726
0.024243
0.032070
0.047726
0.024243
0.047726
0.024243
0.047726
0.047726
0.024243
0.047726
0.024243
0.024243
0.047726
0.032070
0.047726
0.024243
0.047726
0.024243
0.047726
0.024243
0.047726
0.047726
0.024243
0.024243
0.047726
0.047726
0.024243
0.047726
0.024243
0.032070
0.047726
0.047726
0.024243
0.047726
0.024243
0.039898
0.032070
0.024243
0.063381
0.047726
0.016415
0.047726
0.024243
0.047726
0.024243
0.063381
0.024243
0.024243
0.047726
0.024243
0.039898
0.039898
0.016415
0.047726
0.032070
0.024243
0.047726
0.024243
0.047726
0.047726
0.024243
0.039898
0.024243
0.032070
0.047726
0.024243
0.047726
0.047726
0.024243
0.039898
0.024243
0.039898
0.016415
0.047726
0.024243
0.047726
0.024243
0.047726
0.024243
0.047726
0.024243
0.032070
0.047726
0.024243
0.047726
0.024243
0.047726
0.047726
0.024243
0.024243
0.047726
0.024243
0.047726
0.047726
0.024243
0.039898
0.024243
0.039898
1.378.450
1.354.967
1.378.450
1.370.622
0.188626
0.149487
0.032070
0.047726
0.024243
0.024243
0.047726
0.039898
0.024243
0.047726
0.024243
0.047726
0.024243
0.047726
0.024243
0.047726
0.024243
0.024243
1.370.622
1.354.967
1.378.450
1.370.622
1.354.967
1.370.622
0.039898
0.063381
0.032070
0.047726
0.032070
0.024243
0.047726
0.024243
0.047726
0.047726
0.024243
0.047726
0.024243
0.047726
0.024243
0.024243
1.370.622
1.378.450
1.347.139
1.370.622
1.354.967
1.362.794
0.032070
0.032070
0.063381
0.032070
0.063381
0.032070
0.063381
0.047726
0.032070
0.047726
0.032070
0.032070
0.063381
0.047726
0.032070
0.024243
1.362.794
1.370.622
1.354.967
1.354.967
1.370.622
1.354.967
1.378.450
1.370.622
1.362.794
1.370.622
1.354.967
1.354.967
1.378.450
1.370.622
1.354.967
1.354.967
1.378.450
1.378.450
0.047726
0.063381
0.024243
0.047726
0.024243
0.032070
1.370.622
1.354.967
1.378.450
1.354.967
1.378.450
1.378.450
1.354.967
1.370.622
1.354.967
1.370.622
1.347.139
1.354.967
1.378.450
1.362.794
1.378.450
1.370.622
0.047726
0.039898
0.063381
0.024243
0.047726
0.032070
1.370.622
1.354.967
1.378.450
1.378.450
1.354.967
1.362.794
0.039898
0.047726
0.032070
0.047726
0.024243
0.047726
0.024243
0.047726
0.024243
0.016415
0.047726
0.024243
0.047726
0.047726
0.032070
0.024243
1.362.794
1.354.967
1.370.622
1.354.967
1.386.278
1.362.794
1.378.450
1.378.450
1.362.794
1.370.622
1.354.967
1.354.967
1.378.450
1.378.450
1.362.794
1.370.622
1.362.794
1.370.622
0.039898
0.039898
0.063381
0.032070
1.370.622
1.362.794
1.378.450
1.362.794
1.378.450
1.386.278
1.362.794
1.362.794
1.378.450
1.362.794
1.378.450
1.362.794
1.378.450
1.362.794
1.386.278
1.378.450
1.362.794
1.378.450
0.039898
0.063381
0.032070
0.047726
0.032070
0.039898
1.370.622
1.354.967
1.378.450
1.378.450
0.274732
0.219937
0.039898
0.039898
0.063381
0.063381
0.032070
0.032070
0.047726
0.047726
0.024243
0.047726
0.016415
0.024243
0.047726
0.032070
0.047726
0.039898
1.370.622
1.362.794
1.378.450
1.354.967
1.386.278
1.378.450
0.032070
0.063381
0.032070
0.024243
0.047726
0.047726
0.024243
0.024243
0.047726
0.039898
0.024243
0.024243
0.047726
0.047726
0.016415
0.024243
1.370.622
1.370.622
1.354.967
1.370.622
1.354.967
1.370.622
1.354.967
1.354.967
1.370.622
1.370.622
1.354.967
1.370.622
1.354.967
1.354.967
1.378.450
1.370.622
1.362.794
1.370.622
0.039898
0.063381
0.032070
0.024243
1.362.794
1.370.622
1.354.967
1.354.967
1.378.450
1.370.622
0.071209
0.079037
0.039898
0.032070
0.063381
0.047726
0.016415
0.032070
0.047726
0.047726
0.024243
0.047726
0.024243
0.047726
0.024243
0.047726
0.016415
0.039898
1.378.450
1.370.622
1.362.794
1.378.450
0.337354
0.243421
0.039898
0.063381
0.032070
0.032070
0.047726
0.024243
0.047726
0.024243
0.047726
0.032070
0.047726
0.047726
0.024243
0.047726
0.016415
0.024243
1.370.622
1.354.967
1.378.450
1.370.622
1.354.967
1.362.794
1.378.450
1.354.967
1.370.622
1.354.967
1.370.622
1.378.450
1.354.967
1.378.450
1.354.967
1.370.622
0.102520
0.094693
0.039898
0.063381
0.032070

burda 1. baslayanlar hıgh diğerleri low bu şekle göre nasıl algoritma yazarımkı bu sınyalın aynısını almak için ?
YENİLMEZ..

bulut_01

Bu konuda yorumlarınızı bekliyorum  :o
YENİLMEZ..

ferdem

Öncelikle datadan emin olmak lazım, osiloskopla zor olur, Saleae 24MHz 8Channel Logic Analyzer gibi bir araçla datadan çok daha emin olabilirsiniz, eğer data seri haberleşme datası ise baudrate, start/stop bitleri tespit edip mikrodenetleyicilerin uart modülünden datayı aynen üretebilirsiniz, değil de özel bir yöntemle kodlandı ise aynısını üretme işini mikrodenetleyicilerin "compare" modülünü kullanarak yapabilirsiniz, her compare kesmesinde çıkışı lojik1/lojik0 ayarlayıp süreyi de compare registerine yüklemelisiniz. Ben bu datayı PT2262 nin ürettiği dataya benzettim, üreten devreyi görebiliyor musunuz? Bitler 1000,1110 olarak kodlanmış gibi. İyi çalışmalar.

bulut_01

öncelikle cvp ıcın saol kardesım yanlız devre smd lerden olusuyor IC PT deıl emınım ona 8 pınlı bır entegre araba kumandası yedeği yok ve sorunlu çalısıyor bu kumandayı dedıgınız yöntemle yaparsam nasıl bir code yazmam gerekecek ? lojık analızor zor hocam temın edemem sanırım scopla bu işi çözmem gerek hıgh ve low zamanları kopyalamam lazım her tuşa basdıgım farklı sınyaller olusturuyo bu sınyallerın bastan sona 400 ms kopyalasam işe yarar mı yapacagım devre calısır mı ?
YENİLMEZ..

bulut_01

bana tam nasıl çalısır yada scople bu iş yapılır yada yapılmaz seklinde mantıklı acıklama yapabilecek birini arıyorum ?
YENİLMEZ..

z

Ard arda gelen 1den kucuk ve 1 den buyuk olan verileri sayalim.

Baslangicta 7 tane 0 var
Ardindan 4 tane 1 geliyor
Daha sonra atiyorum (saymadim) 50 tane 0

Bu sekilde 0 ve 1 lerin sayisini say.

Datalarini asagidaki gibi tabloya yazalim en sona 0 ekleyelim

7,4,50,......0

Dongu:
Tablodan veriyi oku 0 ise goto bitti
Port pininden 0 cik ve tablodan okunan degeri 40 ile carp ve bu kadar mikrosaniye sure bekle.

Tablodan veriyi oku 0 ise goto bitti
Port pininden 1 cik ve tablodan okunan degeri 40 ile carp ve bu kadar mikrosaniye sure bekle.
Goto Dongu

Bitti: Port pininden 0 cik

Bu mantigi kullanacagin dile gore uyarlarsin artik.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

bulut_01

#6
Alıntı yapılan: z - 20 Mayıs 2012, 23:04:16
Ard arda gelen 1den kucuk ve 1 den buyuk olan verileri sayalim.

Baslangicta 7 tane 0 var
Ardindan 4 tane 1 geliyor
Daha sonra atiyorum (saymadim) 50 tane 0

Bu sekilde 0 ve 1 lerin sayisini say.

Datalarini asagidaki gibi tabloya yazalim en sona 0 ekleyelim

7,4,50,......0

Dongu:
Tablodan veriyi oku 0 ise goto bitti
Port pininden 0 cik ve tablodan okunan degeri 40 ile carp ve bu kadar mikrosaniye sure bekle.

Tablodan veriyi oku 0 ise goto bitti
Port pininden 1 cik ve tablodan okunan degeri 40 ile carp ve bu kadar mikrosaniye sure bekle.
Goto Dongu

Bitti: Port pininden 0 cik

Bu mantigi kullanacagin dile gore uyarlarsin artik.

hocam algorıtma guzel bu dedıgınız sekılde sıstemı acar mı yanı palsların tam süresini bu sekılde tutturabılırmıyız ben ccs yenı sayılırm bu dedıgınız yaparsam eger ccs de nasıl algorıtma kurarım bu dediğiniz yöntem kesin çalsırsa bülent hocam anlınızdan öperim vallaha  ;D
hocam bide palsların genlikleri eşit değil.onu nasıl çözeriz sizin anlattıgınız yöntemle
YENİLMEZ..

z

Win98 de paralel portdan klimanin vericisini okumus tabloya yazmis daha sonrada bu verilerle  IR ledi yakarak klimayi PC ile kontrol etmistim. Calismamasi icin bir neden yok. Datalari olabildigince yuksek ornekleme hiz ile okuyun. Bu 1-0 surelerini  cok dogru tespit etmenizi saglar.

Kodlamayi sen yaparsin artik. Uzun ve gereksiz kodlama yaparak toplamda zamanlamayi bozma ihtimalin varsa kodlarinizin caldigi zamani tespit edip bu degerle tablo verilerini yeniden duzenle.

Mesela kodlarin 5us de kosuyorsa senin de mesela 450 mikrosaniye boyunca low cikis yapman gerekiyorsa fakat sonucta 455 us gecikme olusuyorsa tablodaki veriyi 445 mikrosaniye olarak duzeltebilirsin.

Bu tip oyunlara gerek olup olmayacagi senin hunerlerine bagli.

Genlige takilma. Farkliligin sebebi olcme hatasi. O bilgiler iki anlama geliyor 0 ve 1.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

bulut_01

Alıntı yapılan: z - 20 Mayıs 2012, 23:27:07
Genlige takilma. Farkliligin sebebi olcme hatasi. O bilgiler iki anlama geliyor 0 ve 1.

hocam ölcüm hatası değil iki çesit pals ile bu şifreleme çalısıyor genis olan pals 1.2 ms dar olan pals 415 us bu ikisi arasında palslar kayıyor şekilde ekledim  ccs ana döngü kücük bir örnek yazarsanız bulent hocam büyük bir iyilik yapmış olacaksınız.

YENİLMEZ..

ete

Her şeyden önce kodu algılayabilmek için paket başını bulmanız gerekir. Onu bulmadan hiç bir kod yazamazsınız. Yazsanızda çalışmayacaktır.
Gördüğüm kadarı ile bir bitlik şifre değeri iki bit ile ifade ediliyor. Buda PT2272 yi andırıyor gerçekten.  (Bir kısa HIGH peşine uzun bir LOW veya bir uzun HIGH peşine kıs bir LOW gibi)Entegre direk PT olmayabilir ama onun türevlerinden birisi sanki. Her neyse Header sinyali genelde uzun bir LOW şeklinde verilir. Bazılarında Uzun bir low peşine kısa bir high sinyali eklerler. Bu sinyalin benzeride sizin sistemde olmalı. Header sinyali genelde diğer sinyallerden ayrılabilmesi için mutlaka farklı ve tektir. Bu nedenle önce onu tespit edin. Sonra peşinden gelen low sinyallerini daha sonra peşinden gelen High sinyallerini süre olarak kayıt edin.
Bunu yaptıktan sonra sinyal şekline bakarak aynı datayı oluşturmaya çalışın.
Ama header olmazsa hiç bir şey olmaz.

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

coco

Bence hiç uğraşma elektronik malzeme satanlarda veya oto anahtarcılarında akıllı kumandalar var ondan yaptır gitsin.

bulut_01

Alıntı yapılan: ete - 21 Mayıs 2012, 09:43:33
Header sinyali genelde diğer sinyallerden ayrılabilmesi için mutlaka farklı ve tektir. Bu nedenle önce onu tespit edin. Sonra peşinden gelen low sinyallerini daha sonra peşinden gelen High sinyallerini süre olarak kayıt edin.
Bunu yaptıktan sonra sinyal şekline bakarak aynı datayı oluşturmaya çalışın.
Ama header olmazsa hiç bir şey olmaz.

Ete
hocam dedıgınız gıbı ben ılk butona bastıgımda header sınyalını görebiliyorum uzun lowdan sonra kısa hıgh sonra low sonra uzun hıgh dıye palslar devam ediyor ılk kısa pals header olmalı haklısınız palsların tam zamanlarını tutturmam lazım  pbp yazmak daha ıyı olur sanırım ama ccs yazmak daha dogru olacakdır hocam.
YENİLMEZ..

ete

Kısa pals header olamaz . Tek başına uzun bir LOW veya genellikle uygulanan sisteme göre kısa bir HIGH ve ardından Uzun bir LOW birlikte header sinyalini oluşturur. Header sinyali şifre ne olursa olsun hep sabit bir değerdir.
Değişenler yalnızca şifre bitleridir.
Bu nedenle şifreye değişik değerler vererek kimin header olduğunu anlayabilirsin.

Bu sinyali bulduktan sonra gerisinden gelen sinyal şekillerini ve sürelerini bir şekilde tespit etmen gerekiyor.
Genellikle 2 sinyal uzunluğu kullanılır. Uzun HIGH ve aynı uzunlukta Uzun Low, kısa  HIGH ve aynı uzunlukta kısa LOW gibi.
Bütün yapman gereken sinyal sırasını tespit etmek ve ardından da süreleri tespit etmek .
Sonra aynı şekilde sinyali oluşurup önce header sinyalini yollayıp peşinden diğerlerini sıralaman gerekecek.

Tabiiki entegreyi tespit ederek data sheetine ulaşmak ve oradan olası sinyal şeklini bulmak işini epeyce kolaylaştırabilirdi.

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

bulut_01

ete hocam uzun low sanırım header  bunları sırasını scopda belırlemem kolay yukardakı satırdakı gıbı ornekleme hızım kacsa kendım ayarlıyorum onu 500 satırlık verıyı kayıt edıyor scopdan yanı 500 tane voltaj degerım cepde bunlara göre nasıl algorıtma kurarım ? tablo yapsam.
YENİLMEZ..

ete

Algoritmayı açıkladım onu kendin oluşturman gerekiyor.

Bütün yapılacak iş şu;
- header sinyali süresini ölçmek
- Kısa HIGH veya LOW süresini ölçmek
- UZUN HIGH yada LOW süresini ölçmek.
- HIGH ve LOW ların sıralamasını tespit etmek.
Süre olçümlemelerini PULSIN komutu ile yapabilirsin.
Önce süreleri ölçtür ve gerekirse eproma yazdır.
Mesela 0 nolu adrese header süresi bunu Word tipinde tanımla ve Byte1 ve byte0 olarak iki adrese kayıt et.
2 nolu adrese uzun HIGH yine 2 byte halinde kayıt ettir.
4 nolu adrese kısa HIGH yine 2 byte halinde kayıt ettir.
Sonra skoptan sinyal şekline bak ve aynı şekli oluşturacak şekilde süreleri kullanarak sinyali çıkışa verdir.

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