Bu uygulama ilk başta size biraz zormuş gibi gelebilir. Öncelikle burada 8bit değil 16 bitlik kaydırma işlemi kullanılmıştır. Bunu yapmak içinde 16 bitlik gecici bir değişken (tmp değişkeni) tanımlanmıştır. Tüm kaydırma işlemleri ilk önce bu değişkende yapılmış ve sonrada ilgili portlara aktarılmıştır. 16bitlik bir yapıyı iki tane 8 bite bölmek için aşağıdaki yapılar kullanılmıştır.
LED1=(unsigned char)tmp; //tmp değişkeninin low byte ilgili porta atanmıştır.
LED2=(unsigned char)(tmp>>8); //tmp değişkeninin high byte ilgili porta atanmıştır.
Dikkat ederse 16bittlik yapının alt 8 bitini almak için değişken türü değiştirilmesi yeterlidir. Üst 8 bitini almak için ise sağa 8 kere kaydırma işleminden sonra değişken türü değiştirilmesi gerekir.
Buradaki her efek farklı bir for döngüsü içinde yazılmıştır. 2 ledi aynı anda kaydırılması kayan ışık uygulaması ile aynıdır. Tek farkı ilk başta tek led değil iki led birden yakılıp kaydırma işlemi yapılmıştır. Sonrada tmp değişkenindeki sonuç iki adet 8bitlik yapıya ayrılıp portlara aktarılmıştır.
OR ve AND komutlarıda diğer efekleri oluşturulmak için kullanılmış. Burada dikkat edilmesi gereken OR komutu ile istenen portları 1 yapılabilmesidir. AND komutu ilede istenen portlar 0 yapılır.
LED1=LED1|0x0F; Önce xxxx xxxx Sonra xxxx 1111 LED=LED2&0xF0 Önce xxxx xxxx Sonra xxxx 0000
Buradaki x önceki değerle aynı olduğunu ifade etmek için kullanılmıştır.
Şifre-Pass: 320volt.com
Yayım tarihi: 2011/01/14 Etiketler: c and, c or, hi tech c, hi tech örnek, kaydırma işlemi, microchip pic projeleri