Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

Packet.0[S_Lp]=1 mantıgı

Başlatan M_B, 17 Nisan 2007, 12:01:13

M_B

Merhaba arkadaslar Asagıdakı program parcasının mantıgını anlayamadım acıkalayabılecek arkadaslardan yardım beklıyorum sımdıden Tskler
Aslında tek anlamadıgım yer  Packet.0[S_Lp]=1 , Packet.0[S_Lp]=0 bu kısm


Packet      Var   Word      
P_Val      Var   Byte   
S_LP      Var   Byte      


For S_Lp=0 to 11         
Pulsin PortA.2,0,P_Val         
If P_Val >= 90 then       
Packet.0[S_Lp]=1      
Else                
Packet.0[S_Lp]=0         
Endif
Next
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

digi_micro

For S_Lp=0 to 11
Pulsin PortA.2,0,P_Val
If P_Val >= 90 then
Packet.0[S_Lp]=1
Else
Packet.0[S_Lp]=0
Endif
Next

infrared bilgisi okunurken pulse uzunluklarına bakılarak değer tespiti yapılır
burada
FOR S_Lp=0 to 11
Pulsin PortA.2,0,P_Val
12 bit bilgi oluşturmak için döngü içinde okuma yapılıyor
Pulsin komutuyla pulse uzunluğu ölçülüyor eğer P_Val değeri 90us den
büyükse bu 1 demek 90us den küçükse (pulse yoksa) 0 demek
bu  okuma 12 defa tekrarlanarak 12 bitlik değer elde ediliyor


90us  
████___████___████
---1----0----1----0----1

OG

Yani,
PortA.2 girişinden LOW seviyeli pals süreleri ölçülüyor. Ölçüm sonucu P_Val değişkenine veriliyor.
Bu işlem peşisıra 12 defa (0~11 adımları) yapılıyor (for-next ile).

Eğer ölçüm sonucları (her adım için ayrı ayrı);
90'a eşit veya büyükse Packet değişkeninin X biti 1 olur.
90'dan küçükse  Packet değişkeninin X biti 0 olur.

X biti FOR NEXT döngüsü sebebi ile 0 ila 11 arası değişir.
Packet.X=Packet.0~Packet.11 arası değişir

Packet değişkeni zaten word olarak atandığı için toplamda 16 bit e sahiptir.

Ölçülen süreye göre Packet değişkeninin 0-11 bitleri arası, yani sağdan 12 bit değeri 0 veya 1 olarak atanır. Geri kalan 4 bit dikkate alınmamış.


Sistem
4MHz çalışıyor ise 90 değeri 900mikrosaniye demektir. (90*10usn)
20MHz çalışıyorsa 90 değeri 180 mikrosaniye demektir. (90*2usn)
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

M_B

Arkadaslar yorumlarınız ıcın teşekkür edeım.
Sımdı kafamdakı taslar yerıne oturdu.  :D
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet