C18 Diliyle Robot Programlama – Dış Kesme (External Interrupt) Kullanımı

Bu bölümde amacımız B portundan gelen sinyalin değişimini algılayan bir kesme oluşturmak. Bu kesme pinlerden gelen sinyaller tarafından tetiklenecek ve istediğimiz işlemi yapacak. Özellikle encoder okuma modülünü kodlarken bu sinyal değişimleri tarafından tetiklenen kesmelerden çokça faydalanacağız.

PIC18F4585’te 3 adet dış kesme girişi bulunur. Bunlar RB0(INT0), RB1(INT1) ve RB2(INT2) pinleridir.

Aynı zamanda bu RB0, RB1 ve RB2 pinlerine bizim butonlarımızın da bağlı olduğunu biliyoruz. Biz bu butonlar sayesinde bu kesme girişlerine +5V sinyali ve 0 (IDLE) sinyali verebiliyoruz. (Butona basmazsak 5V, butona basarsak 0V olduğunu kabul edelim). Amacımız butonlarla oluşturacağımız bu sinyalin düşen veya yükselen kenarlarında kesmelerin oluşmasını sağlamak. Düşen kenar dediğimiz şey, sinyalin 1 (+5V) durumundan 0 (IDLE) durumuna geçmesi, yükselen kenar dediğimiz şey ise sinyalin 0 (IDLE) durumundan 1 (+5V) durumuna geçmesidir.

Şekilde;

  • Mavi dikey çizginin olduğu bölümler; B sinyalinin yükselen kenarlarını,
  • Kırmızı dikey çizginin olduğu bölümler A sinyalinin yükselen kenarlarını,
  • Mor dikey çizginin olduğu bölümler B sinyalinin düşen kenarlarını,
  • Yeşil dikey çizginin olduğu bölümler A sinyalinin düşen kenarlarını göstermektedir.

Okumaya devam et

C18 Diliyle Robot Programlama

Önümüzdeki bir kaç hafta boyunca bir keşif  robotunun sahip olduğu modülleri Linux (Ubuntu 10.04) işletim sistemi üzerinde MplabX IDE‘sini kullanarak C18 diliyle programlamayı anlatacağım.

Sıfırdan her şeyi anlatma tarzı bir şey olmayacak. Belli bir birikime sahip olmanız gerekmekte. Genel hatlarıyla Ubuntu 10.04 üzerine MplabX IDE kurulumuyla başlayıp teker teker bir keşif robotunun çalışabilir hale gelmesi için gereken modülleri C18 diliyle programaktan bahsedeceğim. Ana işlem birimiyle alakalı bilgileri içeren  bir yazı dizisi de olmayacak, yani keşif robotu nasıl olur/olmalıdır, keşif algoritmaları nelerdir gibi konular bu yazıların içeriğine dahil değil. Sadece bütün bağlantıları tamamlanmış bir robotun modüllerinin çalışmasını, haberleşmesini sağlamak için gerekenlerden bahsedeceğim ve tabi ki bu modüllerin çalışması için C18 dilinde ne gibi şeyler bilmek gerekmekte, nelere ihtiyaç duyulur, hangi fonksiyonlar kullanılır gibi sorulara cevap vermek adına C18 dilini ayrıntılarıyla inceleyeceğim ve uygulamalar yapmak için de yardımcı kartlar, mikrodenetleyiciler kullanacağım.

İçerik genel hatlarıyla böyle olacak, ilgilenenler takip edebilirler.