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?
Hi-Tech C ile C18 benzerdir, ekstra özellikler için compiler'ın manual'ini incelemeniz yeterli. Aynı örnekleri kullanabilirsiniz
18 serisi içinde Hi-tech gayet iyi bi derleyici,
Tavsiye edilir.
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?
Hi-tech kodları çalışmıyor mu ?
Çalıştıramıyor musun ? :D
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 :)
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
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,
#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.
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.
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 :)
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.
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...
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..
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.
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.
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?
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.
if ile butonu nasıl okurum?
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.