Kayıtlar

atmega328p etiketine sahip yayınlar gösteriliyor

C++ Dersleri | Bitwise Operatörleri | Left Shift Operatör

Resim
 C++ bitwise operatörlerinden left shift << operatörüne gelmiş bulunmaktayız, adından da anlaşılabileceği üzere binary düzendeki bir değişkeni  MSB (most significant bit) tarafından kayıplarla LSB (least significant bit) tarafından yeni eklemelerde düzenleyen bir operatördür, ne demek istiyorum bir örnekle açıklamaya çalışalım: int   main () { int   a   =   4 ; //0100 int   b   =   a   <<   1 ; //1000 cout   <<   " a= "   <<   a   <<   " , b= "   <<   b   <<   endl ; } şöyle bir çıktıya ulaştık :  a=4, b=8  burada olan; indekse göre konuşacak olursam, a değişkeninin 2. bitinde yer alan 1 değeri, 1 bit sola kaydırılmış oldu. Olayı bu kadar basit olmakla beraber dikkat edilmesi gereken noktalarımız vardır; ilk dikkat etmemiz gereken şey değişkenin boyutu, int yukarıdaki kod için benim sistemimde 4 bytes. Bu da şu anlama gelir 4bytes * 8 bit 'ten 32 bitlik bir değişkenimiz var demektir,  ve bu 32 bitlik de

C++ Dersleri | Bit işlemleri - Bitwise And ~ C++ ve operatörü &

Resim
 C++ bitwise and (ve operatörü) & , dijital elektronikten bildiğimiz ve kapısıyla aynı mantıkla çalışmaktadır, iki operandı bulunup, her iki operand da doğru ise doğru (true) sonucunu üretir, diğer tüm olaslıklarda yanlış (false) sonucunu üretir. C++ ve operatörü için doğruluk tablosunu bir görsel ile paylaşalım : kodlarken de aynı isimdeki değişkenleri kullanalım: int   main () { int   a   =   7 ; //0111 int   b   =   13 ; //1101 int   aANDb   =   a   &   b ; //0101 cout   <<   " a= "   <<   a   <<   " , b= "   <<   b   <<   " , a&b= "   <<   aANDb ; } programın çıktısı şu şekilde :   a=7, b=13, a&b=5  Sonuç olarak 5 elde ettik, C++ 'ın bu hesaplamayı nasıl yaptığını alttaki görselde açıklamaya çalıştım: Her sütunu kendi içinde and işlemine tabi tutup aynı haneye cevap olarak döndürüyor. Bu operatörün kendi başına değişkenin değerinde bir değişiklik yapmadığını unutmayın,

Atmega328p Benzersiz Seri Numarası, Kod koruma

Resim
           Arduino UNO üzerinde bulunan mikrodenetleyici : atmega328p-u   kullanarak bir kod yazdık, derledik, bir hex dosyamız var, yazdığımız kodun, sadece "herhangi bir"  atmega328p-u üzerinde çalışmasını istiyoruz, yani farklı bir mikrodenetleyiciyede çalışmasın, ya da "sadece" tek bir  atmega328p-u  üzerinde çalışsın istiyoruz, bir nevi kod koruma gibi, bir şekilde yazılı olan mikrodenetleyici üzerindeki kod okutularak başka bir mikrodenetleyiciye kopyalandığında çalışmasın istiyoruz. İlk seçenek sadece kod uyumluluğunu denetlemek için kullanılabilir, hex kodu alınıp örnek olsun diye Atmega2560 a yüklendiğinde "uyumsuz olacağı düşünülerek" çalışması engellenebilir. İkinci seçenekse, farklı bir atmega328p-u ya da atılmış olsa çalışmasın, burada kod korumadan söz edebiliriz. Peki bunu sağlamak için ne yapabiliriz? Örnek olsun diye atmega328p nin kendine özgü, her mikrodenetleyici için "benzersiz" bir seri numarası olsa, yine örnek olsun diye