Programdaki şu kısmın anlamı nedir?

Başlatan certy, 13 Ağustos 2013, 02:19:10

certy

Yazılmış bir programda şöyle bir kısım gördüm. Nedir bu?

PORTA.2=1-PORTA.2
TA1USS

erenbasturk


certy

Alıntı yapılan: erenbasturk - 13 Ağustos 2013, 03:35:40
biti tersliyor

Yani 1 iken 0 yapıyor?

Eğer öyleyse hangi durumlarda bu tip kodlara ihtiyaç duyulur?
TA1USS

ete

Basit bir matematik işlemini aslında soru olarak sormamak gerekirdi. En kısa yoldan PORTA.2 nin bit bazlı bir eleman olduğunu ve alacağı değerin ya "1" yada "0" olacağını bildiğinizi düşünerek bunu söylüyorum. Bilmiyorsanız tabiiki soruyu sormakta haklısınız.
Komut dan önce PORTA.2=0 ise, (PORTA.2=1-0=1) olacaktır. Yada tersi ise Yani "1" ise (PortA.2=1-1=0) olacaktır.
Göreceğiniz gibi işlemi yapınca PortA.2 nin alacağı değerleri hesaplayabiliyorsunuz.
Bu işi yapan TOGGLE PORTA.2 şeklinde bir komut da var. Aynı işi yapar. Yani PortA.2=0 ise TOGGLE PORTA.2 denilince PortA.2 değeri 1 olur. Değer 1 ise POrtA.2=0 olur.
Nerede kullanıldığına gelince, basitçe bir örnek vereyim. PORTA.2 de bir led bağlı olsun. Bu ledi her program çevriminde yakıp söndürerek flash yaptıracaksanız Araya bu komutu PORTA.2=1-PORTA.2 koymanız yeterli olur. Program bu satıra her gelişinde portA.2 deki led konum değiştirir.
Bu komutu bilmezseniz sizin önce PORTA.2 nin değerini sorgulamanız ve ardından değere göre
IF PORTA.2=0 then PORTA.2=1
IF PORTA.2=1 then PORTA.2=0
şeklinde komut vermeniz gerekir ki 2 adet IF boşuna kullanılmış olur. Bu komut yada TOGGLE komutu bunu otomatik yaparak zaman ve hafıza tasarrufu sağlar.
Toparlarsak bir sayının bitlerine konum değiştitrmek istediğinizde yada bir port pinine konum değiştirmek istediğinizde bu komutu kullanırsınız.

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

certy

Alıntı yapılan: ete - 13 Ağustos 2013, 08:07:18
Basit bir matematik işlemini aslında soru olarak sormamak gerekirdi. En kısa yoldan PORTA.2 nin bit bazlı bir eleman olduğunu ve alacağı değerin ya "1" yada "0" olacağını bildiğinizi düşünerek bunu söylüyorum. Bilmiyorsanız tabiiki soruyu sormakta haklısınız.
Komut dan önce PORTA.2=0 ise, (PORTA.2=1-0=1) olacaktır. Yada tersi ise Yani "1" ise (PortA.2=1-1=0) olacaktır.
Göreceğiniz gibi işlemi yapınca PortA.2 nin alacağı değerleri hesaplayabiliyorsunuz.
Bu işi yapan TOGGLE PORTA.2 şeklinde bir komut da var. Aynı işi yapar. Yani PortA.2=0 ise TOGGLE PORTA.2 denilince PortA.2 değeri 1 olur. Değer 1 ise POrtA.2=0 olur.
Nerede kullanıldığına gelince, basitçe bir örnek vereyim. PORTA.2 de bir led bağlı olsun. Bu ledi her program çevriminde yakıp söndürerek flash yaptıracaksanız Araya bu komutu PORTA.2=1-PORTA.2 koymanız yeterli olur. Program bu satıra her gelişinde portA.2 deki led konum değiştirir.
Bu komutu bilmezseniz sizin önce PORTA.2 nin değerini sorgulamanız ve ardından değere göre
IF PORTA.2=0 then PORTA.2=1
IF PORTA.2=1 then PORTA.2=0
şeklinde komut vermeniz gerekir ki 2 adet IF boşuna kullanılmış olur. Bu komut yada TOGGLE komutu bunu otomatik yaparak zaman ve hafıza tasarrufu sağlar.
Toparlarsak bir sayının bitlerine konum değiştitrmek istediğinizde yada bir port pinine konum değiştirmek istediğinizde bu komutu kullanırsınız.

Ete

Anladım. Bu komutu da zaten sizin pwm derslerinde görmüştüm. Oradan kafama takılmıştı. Teşekkürler.
TA1USS

muhittin_kaplan

Portb.0=~PortA.0 şeklinde kullanımı mevcutmu PBP da ?

subram

Alıntı yapılan: muhittin_kaplan - 13 Ağustos 2013, 16:12:38
Portb.0=~PortA.0 şeklinde kullanımı mevcutmu PBP da ?

var hocam. aynen yazdığınız gibi.
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

certy

TA1USS

-Hasan-

PORTA.0 ' ı tersle PORTB.0 ' a yaz demektir. Yani PORTA.0 0 ise PORTB.0 ' a 1 yaz, PORTA.0 1 ise PORTB.0 ' a 0 yaz demektir.

Gökhan BEKEN

Alıntı yapılan: certy - 13 Ağustos 2013, 18:21:36
Peki onun anlamı nedir?
tilda işareti yani ~ işareti ctrl+alt+ü kısayolunu yaptıktan sonra bir boşluk daha ekleyerek yazılabilir ayrıca ascii kodu 126 dır alt+126 kısayolu ile yazabilirsiniz laptoplarda fn+alt+126 yazmanız gerekebilir. Bitleri terslemek için kullanılır yani 1 ise 0 , 0 ise 1 yapar kısaca NOT işlemidir.
Özel mesaj okumuyorum, lütfen göndermeyin.

certy

TA1USS