Shiftin komutu için yardım

Başlatan eee1984, 30 Ocak 2008, 12:43:16

eee1984

Slm arkadaslar

Ben shiftin komutu kullanarak istediğim veriyi clockla senkron olacak sekilde alabilirmiyim

SHIFTIN DataPin,ClockPin,Mode,[Var{\Bits}...]


Birde bu yapılan işlem bir ceşit okuma işlemi sayılır mı acaba :( :oops:

ete

Mode  değerine dikkat etmek sureti ile yapabilirsin.
Zaten bu komut bu işler için kullanılır. Mode seçiminde ;

0=7. bit den başlar, önce data (bit) okur sonra clk plası gönderir. Clk low da kalır.
1=0. bit den başlar önce data okur sonra clk gönderir. Clk low da kalır.
2=7.bit den başlar, önce clk gönderir sonra data okur, clk low da kalır.
3=0. bit den başlar, önce clk gönderir sonra data okur, clk low da kalır.
4=7. bit den başlar, önce data sonra clk ve clk high da kalır.
5=0. bit den başlar önce data sonra clk ve clk high da kalır.
6=7. bit den başlar önce clk sonra data ve clk high da kalır.
7=0. bit den başlar, önce clk sonra data ve clk high da kalır.

seçeneklerinden birini kendi sistemine uygun olarak seçmen gerek.

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

eee1984

Alıntı yapılan: "ete"Mode  değerine dikkat etmek sureti ile yapabilirsin.
Zaten bu komut bu işler için kullanılır. Mode seçiminde ;


seçeneklerinden birini kendi sistemine uygun olarak seçmen gerek.

Ete

Tesekkurler  ;)

strom

Ete Hocam peki PC klavyesinden veri alırken hangi mod seçeneğini kullanmak gerek?
Şerafetdin hocam yazısında şöyle demiş

Klavye her veri byte için 11 bit gönderir. 1 bit start biti, 8 bit data biti, 1 bit parity biti ve son bit olarakta stop biti gönderir. 8 data biti gönderilirken daima LSB (Least Significant Bit) öncelikli yani en değerliksiz bit gönderilir.

Ama ben 8 mode'u da denedim ya değer olarak 127 aldım ya da 255.
Bir türlü okumayı beceremedim.
Acaba sizin böyle bir çalışmanız varsa paylaşabilir misiniz?

ete

PC klavyesi ile hiç uğraşmadım. Ancak verdiğin bilgilere göre,
sıfırncı bit den başlayan mod değerlerini denemen gerekir ki bunlar 1-3-5-7 dir.
Ancak Shiftin komutu ile 8 bitlik veriyi çekeceğine göre ve toplam data paketi 11 bit olduğuna göre bu iş için bir tedbir düşünmen gerek.
Data paketi= 1 start biti + 8 data biti + 1 parity biti + 1 stop biti olduğuna göre
denemeni şöyle yapabilirsin,

shiftin dta,clk,1,[start\1, data\8, temp\2]
Burada mode olarak 1 seçtim ama 3-5-7 değerleride denenebilir.

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

strom

Çok teşekkür ederim.En kısa zamanda deneyeceğim