AVR Mikrodenetleyicilerde Gecikme Hesabı

Mikrodenetleyecileri Assembly dilinde programlamaya yeni başlayanlar için gecikmeler genellikle sorun olmuştur. Programcılar ya internette hazır buldukları gecikme alt programlarını kullanıyorlar ya da hassas olmayan tahmini gecikme kodları yazıyorlar. Bu yazımızda istediğimiz gecikmeye uyan kodu veren bilgisayar programını tanıtacağız.

Zaman geciktirmenin temel prensibi döngü oluşturarak mikrodenetleyiciye işlem yaptırmadan belli bir süre beklemesini sağlamaktır. Genelde bir komutun işlem süresi, kullanılan osilatörün bir çevrim süresine eşittir. f Mhz’lik bir osilatör kullanılan bir AVR’de bir komutun işlem süresi; T=1/f*10^6 Sn formülü ile hesaplanabilir.

AVRLoop

  1. Öncelikle AVRLoop programını aşağıdaki linkten indiriyoruz. Link :https://www.dropbox.com/s/ew64s32hw3n7369/AVRdelayloop3.rar?dl=0
  2. Programı indirdikten sonra dosyaları RAR içinden çıkartıyoruz ve kurulum gerektirmeden AVRLoop programını açıyoruz.
  3. Üst kısımda kullanacağımız saklayıcıları seçiyoruz.
  4. Gecikme hesaplamak için or time and cycle rate seçeneğini seçip gecikme yapmak istediğimiz süreyi ve osilatör frekansımızı yazıyoruz.
  5. GO butonuna tıklayıp gecikme kodumuzu karşımızda görüyoruz.

Bu programı kullanırken önemli olan durum sigorta bitlerini programlarken 8DIV seçeneğini kullanmamanızdır. Bu seçeneği işaretlemeniz durumunda  program 1/8 oranında çalışacaktır. Yani bu sigorta biti işaretlenmeden 8 komut çevrimi yapan mikrodenetleyici bu bit işaretlendiğinde 1 komut çevrimi yapacaktır. Bu da sizin hesapladığınız gecikmenin hatalı olmasına neden olacaktır.

 

 

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.