C18 Diliyle Robot Programlama – RS232 Seri Haberleşme (USART)

Bu yazıda amaç bilgisayar ile deneme kartımızı seri şekilde haberleştirmek olacak. Bilgisayarlarla haberleşmek için seri iletişim, paralel iletişim gibi yöntemler vardır. Paralel iletişimde her bir bilgi için bir data hattı vardır, tüm bilgiler aynı anda bu veri yollarından gönderilir. Bu nedenle paralel iletişim seri iletişime göre daha hızlıdır fakat mesafe uzayınca çok maliyetli olmaktadır.

Seri haberleşmede bilgiler tek bir hat üzerinden gönderilip alınır. Hızı paralel iletişime göre yavaş fakat daha ucuzdur. Senkron ve Asenkron olmak üzere 2 adet seri haberleşme yöntemi vardır.

Senkron seri iletişimde gönderilen ve alınan veriler aynı anda aktarılır, yani verici ve alıcı taraf eşzamanlı çalışır. Bu eşzamanlılığı sağlamak için iki devre arasında bir clock sinyali hattı bulunur. Bu nedenle asenkron iletişime göre daha hızlıdır. Asenkron seri iletişimde sadece veri hattı bulunur, alıcı ve verici taraf farklı zamanlarda data gönderebilir.     Eşzamanlı olmadığı için iletilen her verinin başında ve sonunda start-stop bitleri bulunur. Ayrıca her veriyle beraber hata kontrolü için gönderilen parity biti vardır.

Okumaya devam et

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 Kütüphaneleri ve Özellikleri

Bu yazıda bundan sonraki yazılarda referans olarak kullanacağım bir çok fonksiyonun özelliklerini, ne tür parametreler aldıklarını ve bu parametrelerin ne için kullanıldığını açıklayacağım.

Bu başlık altında fonksiyonlarını inceleyeceğimiz modüllerin isimleri aşağıdaki gibidir;

  • ADC (Analog-to-Digital Converter)
  • I/O Port
  • Timer
  • PWM (Pulse Width Modulation)
  • USART
  • Delay
  • I²C

Okumaya devam et