Mplab C18 programlama

Başlatan fractal, 16 Mart 2010, 13:15:59

F493

Alıntı yapılan: "fractal"
1.tris ile girişmi çıkışmı onu ayarlıyoruz.peki lat tam olarak nedir?
2.pickit2 ile hex yüklerken bir uyarı geliyor eksik birşeyler var diyor.ama hex i yükleyince çalılşıyor.
3.mplab projemdeki  linker,oblect,library ne işe yarar..

teşekkürler..

Selam,

 1.tris ile girişmi çıkışmı onu ayarlıyoruz.peki lat tam olarak nedir?
 -> Tris register'ı portun giriş veya çıkış olarak ayarlanmasını sağlar. Akılda kalması için 0 = çıkış(Out)  1 = Giriş(Input) olarak düşünülebilir. LAT registeri portun çıkış yazmacıdır. Çıkışa deger yazacaksak LAT' a yazmalıyız. Portu okurkende PORT'u okumalıyız.

2.pickit2 ile hex yüklerken bir uyarı geliyor eksik birşeyler var diyor.ama hex i yükleyince çalılşıyor.
-> Muhtemelen gerilimlerle ilgilidir. Mesajı buraya yazarsanız yardımcı oluruz.

3.mplab projemdeki  linker,oblect,library ne işe yarar..

lib : Standart C kütüphanelerini(clib.lib), işlemcinin özelliklerini barındıran kütüphaneleri(p18xxxx.lib(xxxx tüm 18 ailesini kapsar anlamında)) ve  son olarak startup modüllerini barındırır.(c018.o).

object : Derleyici proje içindeki  ör, deneme.c, lcd.c wait.asm dosyalarını alır ve bunları  deneme.o, lcd.o wait.o şekline dönüştürür. (neden .o'ya dönüştürüyor cevabı aşagıda).

linker : Yukarıdaki .o çıtıları linker tarafından girdi olarak alınır ve çıkışta .exe, .out, .map .list, .code şeklinde output files oluşturulur. Linker aslında parçalar halinde olan projeyi link eder, yani bağlar. Kim kimi nerede çagırmışsa gider onu bulur ve derleme tamamlanır.

Esen kalın.

fractal

pickit2 ile hex yükleyince ekrana bu yazı geliyor.sağ üste config bitleri varmış.

some configuration words not in hex file.ensure default values above right are acceptable.


birde ..c18 de kullandığımız kristalin frekansını nereye yazıyoruz.?yazmıyoruzda komut işleme zamanındanmı hesaplıyoruz?
Restantum cogniscutur Quantum deligutur

Tagli

Alıntı yapılan: "fractal"some configuration words not in hex file.ensure default values above right are acceptable.
Programda config ayarlarının hepsini yapmamışsın, sadece bir kısmına değinmişsin. Senin yazmadığın config bitleri için programlayıcı kendisi varsayılan değerleri kullanacağını söylüyor ve bunları kontrol etmeni istiyor.
Gökçe Tağlıoğlu

fractal

if ile butonu nasıl okurum?
Restantum cogniscutur Quantum deligutur

F493

Selam,


Yukarıda size vermiş oldugum örnekte

#pragma   config   OSC = HS   // 20MHZ  ifadesi kristal seciminin yapıldıgı yer. Siz dışardan 10 veya 20Mhz bağlarsanız hesabınızı ona göre yaparsınız. Örneğin HS 10-20Mhz arası olarak geçer standartlarda. Siz bu aralıkta bir kristal bağlarsanız HS seçeceksiniz. 20Mhz bağladıgımızı farzedersek 20/4 = 5MHZ olur.

#pragma   config   OSC = HSPLL // Bu şekilde ise PLL çalışır. FRQ * 4 demektir. 10Mhz  bağlarsak 10*4 = 40Mhz olur ve 40 / 4 = 10Mhz hızla çalışırız. Oda 1cycle 100us yapar T = 1 / F
T = 1 / 10.000.000
T = 0,0000001sn
T = 0,0000001 * 1000  -> 0,0001ms
T = 0,0001 * 1000  -> 0.1us
T = 0.1 * 1000 -> 100ns  yapar.
Yani siz bu frekansta 8 bitlik bir TMR'ı 1:1 de çalıştırırsanız 256*100ns = 25600ns -> 25600 / 1000 -> 25,6us yapar. Yani her 25,6 us de bir timer interrupt'ı oluşur.

Esen kalın.