uydudoktoru

Tanınmış Üye
Yönetici
PIC Programlama yapabilmek için üç basit adımı gerçekleştirmek gerekir. Bunlar sırasıyla; Kaynak kodu yazımı, Kaynak kodun derlenerek makine diline çevirimi ve makine diline çevrilmiş programın PIC’e yazdırılması.
Bu bölümde kaynak kodunun yazılması amacıyla kullanılan bir çok programdan bir tanesi olan MicroCode Studio programının kurulumu, tanıtılması ve kullanımı hakkında bilgi verilecektir. Konu devamı resimli anlatımı ektedir.
 

Eklentiler

Son düzenleyen: Moderatör:

Profesyonel PIC Programlama Teknikleri ve Optimizasyon

PIC programlamada ustalık, aynı işi yapan kodu daha az hafıza harcayarak ve daha yüksek hızda koşturabilmektir. İşte gerçek projelerde kullanılan o teknikler:

1. Hafıza ve Kaynak Yönetimi

PIC işlemcilerin (özellikle 16F84A veya 12F675 gibi) RAM ve program hafızası kısıtlıdır.
  • Değişken Seçimi: Sadece 0-255 arası sayılar için Word (16 bit) yerine Byte (8 bit) kullanmak RAM tasarrufu sağlar.
  • Bit Manipülasyonu: Bir değişkenin içine 8 farklı "açık/kapalı" (Flag) bilgisi sığdırarak hafızayı 8 kat verimli kullanabilirsiniz.
  • Tablo Kullanımı (Look-up Tables): Karmaşık matematiksel hesaplamalar yerine önceden hesaplanmış değerleri bir tabloya (LOOKUP) koymak işlemci yükünü hafifletir.

2. Kesme (Interrupt) Teknikleri

İşlemcinin sürekli bir pini kontrol etmesi (Polling) yerine, bir olay olduğunda ana işini bırakıp o olaya müdahale etmesi yöntemidir.
  • Zamanlayıcı Kesmeleri (Timer): Hassas saat veya frekans işlemlerinde delay komutu yerine Timer kesmeleri kullanılır. Bu sayede işlemci beklerken bile arka planda iş yapmaya devam eder.
  • Dış Kesmeler (External Interrupts): Bir butona basıldığında veya bir sensörden sinyal geldiğinde anında tepki verilmesini sağlar.

3. Kararlı Çalışma (Stability) İçin Donanımsal Teknikler

Kodun yazılımsal olarak mükemmel olması yetmez; donanım teknikleri de programlama başarısını belirler:
  • Watchdog Timer (WDT): Kodun herhangi bir sebeple (parazit vb.) kilitlenmesi durumunda işlemcinin kendi kendini resetleyerek işe devam etmesini sağlar.
  • Brown-out Reset (BOR): Voltaj belirli bir seviyenin altına düştüğünde işlemcinin hatalı işlem yapmasını önlemek için sistemi durdurur.
  • MCLR Hattı: Reset pinine (Pin 4 veya 1) takılan 10k direnç, devrenin dış parazitlerden etkilenip kendi kendine reset atmasını engeller.

4. Kod Yazım Püf Noktaları (Clean Code)

  • Açıklama Satırları: Aylar sonra koda baktığınızda neyin ne olduğunu anlamak için her bloğa açıklama yazın.
  • Alt Programlar (Subroutines): Tekrar eden kodları ana döngüye yazmak yerine GOSUB veya fonksiyonlar içine alarak program hafızasından kazanın.

Usta Tavsiyesi: "Gürültüye Karşı Yazılım Filtresi"

Endüstriyel ortamlarda çalışan devrelerde sensörlerden gelen "parazitli" sinyaller çok olur. Tekniklerden biri de yazılımsal debounce yapmaktır. Yani bir sinyal geldiğinde onu hemen kabul etmeyip, birkaç milisaniye sonra hala oradaysa "gerçek sinyal" kabul etmek, devrenin kararlılığını %100 artırır.
 
Geri
Yukarı