12f675 internal osc. sorusu

Başlatan efsanepoldem, 10 Eylül 2012, 13:26:25

efsanepoldem

   Merhabalar.  4 Mhz için     define osccal_1k 1  böyle kullanıyoruz. Mesela 2 Mhz de çalışmak için nasıl bir komut yazmak gerekir? Yada daha farklı frekanslar nasıl tanımlanıyor.

kgguler


osccal_1k 1 komutu pic dahili kalibrasyonunu dosya içine kaydetmek içindir.Frekans belirleme için  DEFINE OSC 4 komutu kullanılıyor.




Maxim

define osccal_1k
komutu osilatör frekansı ile ilgili değildir.
fabrikadan calibrasyonlu gelen ve bu kalibrasyon değeri yazma sırasında silinmesin diye önceden yapılan tedbir gibi birşeydir. Bunu yazmaz isen kodun başına (12F675 için) o fabrika değerleri programlama sırasında silinir.  internal 4mhz olan osc frekansı ciddi bir şekilde farklılaşır.

yani normal external kristal kullanırken bu komut kullanılmaz.

ayrıca 12F675 te internal SADECE 4mhz dahili osilatör var (yanlışım yoksa)

pwm.c

12f675 sadece 4 mhz dahili osilatör ile çalışır.
2 mhz için ya kristal baylayacaksın yada 12f683 kullanacaksın. bunun 1, 2, 4 ve 8 mhz dahili osilatörü var.
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

efsanepoldem


rexo


Hocamız şöyle demiş ;
12F675 entegresinde program hafızası son adresine OSCCAL değerine ait kalibrasyon değeri fabrikası tarafından yazılır.
Entegredeki programı bilinçsizce silersen o değerde silinir ve işlemcinin frekansı dahili osc kullanıldığı zaman şaşar.
Mesel örnek vereyim. Normalde 1 Mhz olması gereken bölünmüş frekans 700Khz seviyelerine bile düşebiliyor.
Hal böyle olunca zamanlamaya bağlı komutların pek çoğu şaşacaktır. Bunu önlemek için programın başına
DEFINE OSCCAL_1K 1  komutunu eklemeniz gerekir. tabiiki işlemciyi durup dururken silmeyin. Programlama esnasında otomatik silinir ama silinmeden önce OSCCAL değeri okunup programlanırken geriye yerine yazılır.

Ete

Maxim

son bir ek bilgi:
bu osccal değerini yanlışlıkla silseniz bile pickit2 programı ile yeni baştan oluşturabilirsiniz, aklınızda olsun.
tools altında osccal

Powered by EzPortal