!! ARKADAŞLAR 10 HANELİ HEX KODU PBP DE İŞLEME???

Başlatan gulbey84, 18 Kasım 2009, 23:15:28

ete

Bana kalırsa yeni değişken kullanma. Yalnızca ID leri 10,20,30,40,50
den başlayan hafızalara kayıt et. Karşılaştırma yaparken den buradan teker teker alıp karşılaştır.

Olayı tam olaraak anlamamışda olabilirim. Benim bildiğim tanıdık kartlar olmalı ve tanınmayan kartlar olmalı. Tanınmayanlarla tanıdıkların karşılaştırması için;
Tanıdıkları şayet birden fazla ise dediğim gibi 10-20-30..50 adreslerinden itibaren kayıt edersin.
Sonra tanıdık olmayanı tanımladığın değişken gurubuna verirsin AO,BO,CO.. gibi. Daha sonra adres göstergesini 10 olarak başlarsın ve orada kayıtı olan ID leri okursun ve A-B-C-D-E ye atarsın sonra A ile AO yu daha sonra B ile BO ... yu karşılaştırıp bakarsın. Eşitlik yok ise bu sefer adres göstergesini 20 yaparsın ve diğer tanıdık gurubu alırsın böylece 50 adrese kadar gelirsin. Hala aşitlik yok ise okunan yabancı ID tanıdık değildir dersin olur biter.

Değişkenlerle de yapmak mümkün bu sana hız kazandırır. Bu iş için dizi değişkenide kullanabilirsin.
Mesela  Tanıdık ID ler gurubu için
AT VAR BYTE[5]
BT VAR BYTE[5]  
..
ET VAR BYTE[5]

şeklinde bir değişken tanımlaması yaparsan bunu daha hızlı şekilde karşılaştırma yapmak için kullanabilirsin. Köşeli parantez içindeki değer bu değişkenin 5 ayrı bilgi için kullanılacağını belirtiyor .Daha fazla tanımlama için rakamı artırabilirsin. Diyelimki 8 adet farklı tanıdık ID için parantez içine 8 yazman gerekecek.

Tabiiki programın bir tanıdık ID okuma ve tanımlama kısmı olacak ve orada bunları hem okuyup hemde yukarıda açıkladığım şekilde eeproma kayıt etmiş olacaksın. Aynı ID leride sırası gelen değişkenlere ataman gerekiyor tabiiki. NAsıl dersen, zaten AO olarak okunan değer okunan A ID değeri olacak ve bunu eeproma kayıt ettikten sonra diyelimki önceden farklı 2 adet ID kayıt etmiş idin ve bu üçüncü olacak (burada SIRA değişkenide tutabilir ve eepromun 0 nolu adresinde saklayabilirsin. Her kayıttan sonra bir artırıp yeniden yerine kayıt edersin.)
Sonuçta AT[3]=AO , BT[3]=BO ...ET[3]=EO şeklinde değişkenleri eşitlersin.
Karşılaştırmada ise işin biraz daha kolay olacaktır.
X=0 'Bu senin değişken sıra nosu olacak)
FOR X= 0 to 8 '8=kaç adet kayıt var ise onu ifade ediyor
IF AT[X]=AO  THEN CIK 'AO bilinmeyen ID nin A değeri oluyor)
IF BT[X]=BO THEN CIK
IF CT[X]=CO THEN CIK
...
IF ET[X]=EO THEN CIK
NEXT
Program bu satıra ulaşır ise bütün ID ler karşılaştırıldı ama eşitlik bulunamadı demektir.
LCDOUT xx,xx ,"Eşitlik Yok"
GOTO xxxx
CIK:
Program buraya atlarsa eşitlik var demektir yani okunan ID hafızadaki ID lerden birisidir demektir.

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

gulbey84

hocam yine kitaplarda dahi bulamayacağım bilgiler verdiniz...çok sağolun gerçekten...hocam önerilerinizi çalışacağım...eğer zorlanırsam yukarı da örnek verdiğim gibi 10 adet kartın id lerini yazılıma eklicem o şekilde zaten kodlamış olacağım...yani benim yazılıma tanıttığım id ler dışında başka bi kart okursa röle çekmicek...tabi bu işin kolay kısmı...ama önce sizin önerilerinizden yola çıkarak eproma yazdırma yönetmini deneyeceğim çünkü taktir edersinizki bu şekilde olduğunda daha çekici bi sistem olacak...

teşekkürederim

gülbey
HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE

gulbey84

ete abi tekrar selam...hocam senden aldığım tiyolarla tam olayı çözdüm toparlıyorum derken hiç hesaba katmadığım bir sorunla karşılaştım..hocam ben testlerimi şu düzenekte yapıyordum...rfid kart okuyucu devremin seri çıkış pininiden gelen datayı bilgisayarımın seri portuna bağlayıp isis te de compim vasıtasıyla pic e bilgi alarak lcd de gösteriyıordum...fakat simulasyon değilde gerçekte de uygulamayı görmek istedim...bread board üzerine picli devremi kurup aynı isis teki gibi rfid okuyucu devrenin seri çıkışını pice girdim..fakat bir türlü sonuç alamadım....pice hex yükleme konusunda hiçbir şüphem yok...hocam ben sana resimlerle gösteriyim...



abi bu isite kurduğum devre...aslında burada birazcık isis'i kandırmış oldum sende anlaöışsınıdr...ben burada rfid okuyucu devrenin seri bilgi gönderen çıkışını bilgisayarın seri portuna (rx e) bağladım...hyperterminalde dahil tüm platformlarda 19200 baund hızında gelen id numarasını okuyabildim o sebeple compim ve virtual terminal ayarlarında da 19200 aynı şekilde pic içindeki yazılımda da 19200 şeklinde ayarladım...kaldı ki bu şekilde sistem sorunsuz çalışıyor...sanırım rfid okuyucu devre yazılımında da baund hızını 19200 yapmışlar hocam...ete abi bak buda rfid okuyucu devresi abi...



ete abi burada da entegrenin 3.bacağından bir pnp transistor üzerinden seri bilgi çıkışı gerçekleşiyor....işte ben rfid okuyucu devrenin bu seri bilgi çıkışını araya hiçbir şey koymadan direk olarak bilgisayarımın seri port rx ine girdiğimde ve ilk resmdeki gibi isis te pic devresini kurdğumda sistem fevkalade iyi çalışıyor...ama pic kısmını board da kurup aynı şekilde bağlantıları yaptığımda devre çalışmıyor...gerçi iki kez deneyebildim çünkü o sırada pic programlayıcı devrem bozuldu (aksilik bu ya!) abi birde şu bilgiyi vermiş rfid okuyucu devrenin tsaarımcısı o daşu resimde



hocam burda da pc için şu bağlantı başka bir işlemci içinde şu bağlantı olacak diyor....ben yukarıda da geçtiği gibi hserin komutuyla ve bu resimdeki db9 bağlantısıyla gelen bilgiyi son derece güzel alıyorum ama dediğim gibi sadece isis te....gerçek hayatta da aynı şekilde çalışması gerekmiyormu??? acaba küçük bir püf noktası varda ben mi bilemedim? bana b konuda yardımcı olabilirmisin hocam....senide çok uraştırdım ama bu sorun kafamı gerçekten çok karıştırdı....

sevgilerle hocam

gülbey
HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE

ete

Sana söyleyebileceğim tek şey seviye düzeltmesi yapman olacaktır.
Olayı biraz açarak anlatayım.

PC nin Seri portu (RS232 portu) çalışırken kullandığı seviyeler şunlardır.
HIGH =-10V  (Bazı laptoplarda bu -7V ta kadar düşer)
LOW = +10V (Bazı laptoplarda bu +7V ta kadar düşebilir)
Dikkat etti isen senin tanıdığın voltaj seviyelerine hiç uymuyor.
Şimdi RFID çıkışını direk PC ye girince normal okuma yapabiliyorsun. Aslında sanırım RFID  ana çıkışı TTL dediğimiz ve pic de de kullanılan cinsten bir seviyede yani,
HIGH =+5V
LOW= 0V yani GND.
Ancak arada bir transistör kullanarak PC nin anlayacağı seviye çevrimi yapılmış.  seviye  çevirme transistörüne dikkat edersen TTL (RFID) tarafından HIGH geldiği zaman bunu LOW'a LOW geldiği zamanda HIG'a çeviriyor. Dolayısıyla PC de bu sorun olmuyor.

Şimdi gelelim işin Pic tarfına. Pic HIGH olarak +5V ister. Low olarak da 0V (GND) ister. Sen PC ye gönderilecek sinyali Pice girersen hüsrana uğrarsın nitekim uğramışsında. Çünki Higl lar low lar tamamen ters çevrilmiştir ve pic bunları anlamaz. O halde ne yapmak gerekir?. Ya gelen sinyali oradaki çevirici transistör Beys ucuna giren kısımdan alacaksın (seviyeyi tam olarak bilmiyorum teorik olarak dediğim doğru ama kontrol etmek gerek) yada araya aynı çeviriciden bir tane daha yapacaksınki tekrar RFID den HIGH gelince Pic'e HIGH , LOW gelince LOW gitsin.

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

gulbey84

hocam dükkandaki abime söyledim sabah yeni pic programlayıcım gelcek...yani şu anki durumumu tahmin ediyorsundur belki kuduruyorum burda tabiri caizse! kolları yarın akşam sıvıcam hocam mecburiyetten....hocam şimdi öncelikle gelen seviye 5volt..çünkü denemelerim sırasında ölçmüştüm...hocam şimdi orada 3.bacaktan çıkan sinyal pnp ile tersleniyor....ben önce transistöre girmeden yani direk 3 bacaktan pice girerek deniyim...olmaz sa da aynı şekilde o pnp transistörün collektöründen yine bir pnp ile tekrar sinyali çeviriyim...doğru anladımmı hocam....birde o resimde npn ile bir çevirme yapın demişler...o bağlantıyı kullansan acaba sizin anlatmak istediğiniz şey gerçekleşmiş olurmu...ya hocam gerçi dedim gibi malzemem yarın gelcek şimdi benimde elim kolum bağlı..bu sorularıma cevap verirseniz hocam çok sevinirim...onun dışında ben yarın akşam deneyerek biraz daha uğraşrak size danışıyım....çünkü bazen uğraşmakta çok faydalı oluyo...ama tabi sizin katkılarınız da tartışılmaz!!

sağolun ete abi...allah razı olsun
HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE

ete

Bu son mesajımı daha dikkatli okursan ne yapman gerektiğini daha iyi anlayacaksın.
Anlayacağın dilde kısaca bir kez daha açıklayayım.

RFID devren PC ye HIGH yolladığı zaman PC ye gönderilen bilgi aslında LOW oluyor aradaki BC237 transistörün gelen bilgiyi ters çevirmesi nedeni ile bu gerçekleşiyor.  Aynı yerden alınan bir bilgiyi Pic'e girersen anlamayacaktır.
Çünki RFID devren ile PİC aynı dili konuşuyorlar. Arada tercüman gerekmiyor. PC bunlardan farklı dil kullandığı için arada çevirici ile anlaşabiliyorlar.
Sende ya sinyali çevirmeden (BC237 li devrede SOUT ucunu direk pice girersen anlayacaktır). yada çevrilmiş bilgiyi (RXD çıkışından gelen bilgiyi)  bir kez daha 5V seviyesinde çevirirsen pic gelen bilgiyi anlayacaktır.

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

gulbey84

anladım hocam...yarını bekliyorum sabırsızlıkla...pic programlayıcı devrem bi gelsin...aaaa yada aslında dün kü yüklemem de sorun olmadığını düşünüyorum hocam...ben şimdi denemeye başlıyorum hocam..teşekkürederim
HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE

gulbey84

tekar selamlar....ete abi ellem ettim kullem ettim yinede başaramadım...yukarı da ki resimler de de anlattığım gibi pc gönderirken proteusta mükemmel çalışıyor....fakat rfid okuyucu devremden pic e gerçek hayatta aynı şekilde yada senin bana önerdiğin şekillerde seri bilgiyi gönderemedim...yada alamadım.....hocam anlatıyım...attiny 2313 ün 3.bacağını direk olarak picin rx ine girip denedim olmadı....aradaki pnp transistör ile gönderdim (aynen şemadaki gibi) olmadı....sonra npn transistörle çevirip denedim olmadı.....seri çıkış pininini direk olarak npn den çevirip gönderdim yine olmadı....acaba ne yapmak lazım hocam....sistemde bi sorun olsa proteustata olumlu sonuç alamazdım ki....önerilerin çok doğru şeylerdi ama onları da uygulamama rağmen yine olmadı...sence başka ne şekilde deneyebilirim hocam....mesela bir pice hserout ile gönderme diğer bir pice hserin ile alma görevi verip bread boardda denesem burda bi sorun çıkmazsa benim sisteminde aynı şekilde çalışması gerekir...ben dediğim gibi biraz test yapıyım hocam...saygılarla
HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE

gulbey84

hocam birde seri bilgiyi almak istedğim işlemci attiny2313 kuvvetli bir ihtimalle yazlııda c ile yazılmıştır...acaba bunun bir etkisi olabilirmi çalıştıramamam da ama bu seferde proteusta çalışmazdı öle değilmi....şimdi hocam bilgisayara giriyo ve ben bu seri bilgiyi virtal terminalde olsun yaza hazırladığım pic simulasyında olsa çok iyi görebiliyorum işleyebiliyorum...ama bread boarda uyguladığım zaman bir türlü alamıyorum.... saygılarımla
HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE

ete

Attiny olması sonucu etkilemez. Sonuçta oda ttl çalışıyor.
Olabilecek muhtemel şeyleri sana sıralayayım.

19200 Baud haberleşme hızı 20 MHz den aşağı frekanslarda düzgün çalışmayabilir. Bana kalırsa pic frekansını 20 MHz e çıkart

Her iki tarafta da Baud Rate ayarlarının eşit olduğundan emin olmak lazım.
Gönderme formatı 8N1 şeklinde her iki tarafı ayarlamak lazım. Olmuyorsa 7E1 denenebilir. Yani 7 data biti, even parity ve 1 stop biti şeklinde.


Sorması ayıp Proteus da nasıl deniyorsun bu aleti tam anlamadım.

Başkada bir şey aklıma gelmiyor. Yinede düşüneyim aklıma gelen bir şey olursa haber veririm.
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

gulbey84

estfllah hocam sorması ayıp olurmu hiç! ete abi tabiri caizse isis'i kandırıyorum!! hocam isisye compim componeneti varya....şimdi ben önce rfid okuyucu devremin seri çıkışını bilgisayraımın seri portuna yani rx pinine bağlıyorum:...rs232 nin gnd sinide devrenin gndsine bağlıyorum...sonra isiste    
compim componenetini koyuyorum...compim ayarlarını da 19200 yapıyorum....daha sonra  ben rfid kartı devreye okuttuğumda aynı anda devrenin seri çıkış pininden kartın id numarası içıkıyo..tabi ben seri çıkışı rs232 portumun rx ine verdiğim için compim de de doğru ayarları yaptığım için bilgi geldiği anda aynı zamanda isiste deki compim in rx de aktif oluyo...yani biraz hile yaptım hocam...acaba bu yüzdenmi geçek hayatta sistemi çalıştıramıyorum..sonra isisteki compimin rx ine virtul terminali bağlıyorum ve gelen veriyi rahatlıkla görebiliyorum hocam...tabi bende pic koyarak ve geçenlerde konuştuğumuz kodlarla kartın iid numarasını lcd ekranda görmeyi başardım...ama işte asıl sorunum bunu gerçek hayatta beceremem!! önerilerini deniyim ben abi...sana bilgi gönderirim...çok sağol ete abi...hakkın çok....

he hocam bu arada 8n1 söledin ama ben herin komutuyla alıyorum...acaba anlattığın formatları bu komuttada uygulayabilirmiyim?

saygılarımla
HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE

ete

Sen en iyisi bu konuda çalışan pic programını bana bir yollada bakayım. Orada var bir eksiklik sanırım.
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

gulbey84

sevgili abim elimde 16 mhz vardı onla denedim yine sonuç yok..abi bak bu kodlarla isis te çalışıyo...

INCLUDE "MODEDEFS.BAS"

'***********************DEFINITIONS***************************************
DEFINE Osc 4
'--------------------------------------------------------------------------------------------
'***********************SERIAL COMM DEFINITION**********************
DEFINE HSER_TXSTA 24h
DEFINE HSER_RCSTA 90h
DEFINE HSER_BAUD 19200

DEFINE LCD_DREG PORTb
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTb
DEFINE LCD_RSBIT 0
DEFINE LCD_EREG PORTb
DEFINE LCD_EBIT 3

cmcon=7
trisb=%00000010
trisa=%00000001

a var byte
b var byte
c var byte
d var byte
e var byte

ANAPROGRAM:

hserin [hex2 a,hex2 b,hex2 c,hex2 d,hex2 e]
pause 50
LCDOut $fe, 1,hex2 a,hex2 b,hex2 c,hex2 d,hex2 e
pause 10

goto anaprogram

end

aslında çok basit kodlar...ama isiste çalışıyo..bu şekilde bilgiyi alıp işleyebiliym...gerçekte nasıl olcak onu çözemedim hocam....abi devrelerle ilgili resimler bu konumuzda 1.sayfada var ete abi...

saygılarla
HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE

ete

Normalde kaç MHZ de çalıştırıyorsun ?

Yada elinde hangi kristaller var.

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

gulbey84

hocam isiste çalışan halde 4 mhz....ama ben bord üzerindeki devremde 4 dendim 6,12 ve 16 mhz de dendim..tabi entegreyi yüklerken herzaman hs ve xt olayınıda göz önünde bulundurdum...hocam acaba devreden gelen baund hızı 19200 değilmi? ama isiste sorunsuz çalışıyo 19200 den başka çalışmıyo isiste...yani bilgisayara girdiğim anda....hocam 1.sayfada hem devre şeması hem benim isisteki kurlumum var...bakabilirmisiniz...

saygılarımla
HABURDA KARŞILANANLAR YALNIZCA O BEBEK KATİLLERİ,VATAN HAİNLERİ DEĞİLDİ!!AYNI ZAMANDA YALANLAR VE KARANLIKLAR İMPARATORLUĞUNUN YOKOLUŞUNUN KARŞILANMASIYDI! NE MUTLU TÜRKÜM DİYENE