Picproje Elektronik Sitesi

DERLEYİCİLER => Microchip MPLAB C serisi => Microchip C18 => Konuyu başlatan: fractal - 16 Mart 2010, 13:15:59

Başlık: Mplab C18 programlama
Gönderen: fractal - 16 Mart 2010, 13:15:59
ccs c bırakıp c18 den başladım.forumda c18 ile ilgili pek bir bilgi yok.hatta c30 ve c32 ile ilgilide.acaba en azından butona basınca led yakabileceğim tarzda c18 için kod örnekleri mevcutmu?
Başlık: Mplab C18 programlama
Gönderen: ErsinErce - 16 Mart 2010, 13:52:48
Hi-Tech C ile C18 benzerdir, ekstra özellikler için compiler'ın manual'ini incelemeniz yeterli. Aynı örnekleri kullanabilirsiniz
Başlık: Mplab C18 programlama
Gönderen: Erol YILMAZ - 16 Mart 2010, 14:12:00
18 serisi içinde Hi-tech gayet iyi bi derleyici,

Tavsiye edilir.
Başlık: Mplab C18 programlama
Gönderen: fractal - 16 Mart 2010, 14:19:24
c18 mi yoksa hi-techmi tavsiye edersiniz daha başındayım..hi-tech kodları çalışmıyor c18 de.butona basınça led yakacak bir örnek program yokmu?
Başlık: Mplab C18 programlama
Gönderen: Erol YILMAZ - 16 Mart 2010, 14:39:57
Hi-tech kodları çalışmıyor mu ?
Çalıştıramıyor musun ? :D
Başlık: Re: Mplab C18 programlama
Gönderen: tyildizak - 16 Mart 2010, 17:20:51
Alıntı yapılan: "fractal"ccs c bırakıp c18 den başladım.forumda c18 ile ilgili pek bir bilgi yok.hatta c30 ve c32 ile ilgilide.acaba en azından butona basınca led yakabileceğim tarzda c18 için kod örnekleri mevcutmu?


Daha önce sitedeki hitec ustalarımızın verdiği bir link:

http://www.microchipc.com/

Ayrıca, hitec ile çalışacaksanız (benim kişisel tercihim) mplab ile kullanın ve mplab'ın kurulumda sağladığı ücretsiz versiyonları kullanabilirsiniz. Önce biraz ısınmak gerek, ccs'den sonra biraz zor gelecektir, ama üstüne tanımam :)
Başlık: Mplab C18 programlama
Gönderen: ErsinErce - 16 Mart 2010, 17:22:06
Alıntı yapılan: "fractal"c18 mi yoksa hi-techmi tavsiye edersiniz daha başındayım..hi-tech kodları çalışmıyor c18 de.butona basınça led yakacak bir örnek program yokmu?

led yakmıyor ama işini görür ;)

http://www.microchipc.com/sourcecode/#PIC18LF4550_LCD_temp_sensor
Başlık: Mplab C18 programlama
Gönderen: PROTECH_ - 16 Mart 2010, 21:09:31
PIC konusunda HI-TECH C nin üzerine daha iyi bir derleyici ile karşılaşmış değilim! Daha önce pic basic pro ve assembly de kullandım ama hi-tech in yeri başka  ;)

Yanlız,  PIC ile çok işiniz olmuyorsa, kesinlikle tavsiye etmem...
Başlık: Mplab C18 programlama
Gönderen: F493 - 16 Mart 2010, 21:14:06
Selam,



#include <p18f452.h>
#include <stdio.h>
#include "delays.h"

#pragma config OSC = HS // 20MHZ
#pragma config OSCS = OFF
#pragma config PWRT = ON
#pragma config BOR = OFF
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config DEBUG = OFF
/////////////////////////////////////

#define LED LATBbits.LATB3
#define T_LED TRISBbits.TRISB3


void startup(void)
{
ADCON1 = 0x07;
LED = 0; // 0
T_LED = 0; // Çıkış.

}

void main(void)
{
startup();

while (1) {
LED = 1;
Delay10KTCYx(200);
LED = 0;
Delay10KTCYx(200);
}
}



http://rapidshare.com/files/364239566/C18_LED.rar.html

Buradanda  MPLAB proje dosyasını ve simülasyon için proteus devre şemasını indirebilirsiniz. Temel bir örnek.

Esen kalın.
Başlık: Mplab C18 programlama
Gönderen: F493 - 16 Mart 2010, 21:21:35
Alıntı yapılan: "PROTECH_"PIC konusunda HI-TECH C nin üzerine daha iyi bir derleyici ile karşılaşmış değilim! Daha önce pic basic pro ve assembly de kullandım ama hi-tech in yeri başka  ;)

Yanlız,  PIC ile çok işiniz olmuyorsa, kesinlikle tavsiye etmem...

Selam,

 Yeni bir cevap bölümü açmak istemezdim ama Hi-tech ciddi projelerde göçüyor. Ben 2 yıl önce yaklaşık 3000 satırlık bir projeyi Hi-tech ten C18' e çevirmek zorunda kaldım ve tek hamlede çalıştı. Günlerce ugraştım printf'teki yazdırma hatalarını gidermek için. Neyse sadece bir deneyim ve bunu yaşayan sadece ben değilim. Struct'larda pointerlarda yani karmaşık işlemlerde sızıntı var. C18 ve C30 kullanın 16 serisi için asm yada hitech kullanın derim.

Esen kalın.
Başlık: Mplab C18 programlama
Gönderen: PROTECH_ - 17 Mart 2010, 00:32:52
Alıntı yapılan: "F493"
 Yeni bir cevap bölümü açmak istemezdim ama Hi-tech ciddi projelerde göçüyor. Ben 2 yıl önce yaklaşık 3000 satırlık bir projeyi Hi-tech ten C18' e çevirmek zorunda kaldım ve tek hamlede çalıştı. Günlerce ugraştım printf'teki yazdırma hatalarını gidermek için. Neyse sadece bir deneyim ve bunu yaşayan sadece ben değilim. Struct'larda pointerlarda yani karmaşık işlemlerde sızıntı var. C18 ve C30 kullanın 16 serisi için asm yada hitech kullanın derim.

Esen kalın.

Merhabalar
Okuldan PIC  dersi  hocamız C18 tavsiye etmişti, sebep olarakta "üreticiler ürettikleri ürünlerin bilgilerini hepsini hicbir zaman 3.part firmalara vermezler " demişti

hocam dogrusu, Hi-Tech'i bir kaç güzel özelliginden dolayı tercih ediyorum, bunlardan en önemlisi assembly nin esnekliğini assemblyden sonra hi-tech te bulabiliyorum,
2.pek nadir olarak printf vs. gibi fonksiyonları kullanıyorum, genelde kendim yazarım, 3.sü hız konusunda iyi oldugunu düşünüyorum.
Dez avantajına gelecek olursak  kütüphane destegi konusunda bana göre çok iyi değil hatta kötü, zaten yaşadıgınız problemlerde bunun göstergesi.


Bunun dışında çok kayda deger bir dezavantajı yok  bana göre  :)
Başlık: Mplab C18 programlama
Gönderen: M_B - 17 Mart 2010, 08:44:38
Okuldan PIC dersi hocamız C18 tavsiye etmişti, sebep olarakta "üreticiler ürettikleri ürünlerin bilgilerini hepsini hicbir zaman 3.part firmalara vermezler " demişti

Dogrudur. Bildiğim kadarıyla  da mikrochip Hi-Tech C de satın aldığına göre sorun yoktur.
Başlık: Mplab C18 programlama
Gönderen: PROTECH_ - 17 Mart 2010, 10:05:18
Alıntı yapılan: "M_B"
Dogrudur. Bildiğim kadarıyla  da mikrochip Hi-Tech C de satın aldığına göre sorun yoktur.

hocam hernekadar satın almış olsada compiler çekirdeğini çok değiştirmemiştirler diye tahmin ediyorum,  çünki  bu iş çok zahmetli ve hata riski yüksek olan  bir işlem olurdu...
Başlık: Mplab C18 programlama
Gönderen: fractal - 17 Mart 2010, 11:47:41
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..
Başlık: Mplab C18 programlama
Gönderen: Tagli - 17 Mart 2010, 12:10:54
Alıntı yapılan: "fractal"1.tris ile girişmi çıkışmı onu ayarlıyoruz.peki lat tam olarak nedir?
Bu başlıkta konuşulmuştu.
Başlık: Mplab C18 programlama
Gönderen: F493 - 17 Mart 2010, 12:36:07
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.
Başlık: Mplab C18 programlama
Gönderen: fractal - 17 Mart 2010, 13:01:45
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?
Başlık: Mplab C18 programlama
Gönderen: Tagli - 17 Mart 2010, 13:12:37
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.
Başlık: Mplab C18 programlama
Gönderen: fractal - 17 Mart 2010, 13:20:29
if ile butonu nasıl okurum?
Başlık: Mplab C18 programlama
Gönderen: F493 - 17 Mart 2010, 13:47:41
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.