MPLABX 'de XC8 ile 16F serisi kullanımı

Başlatan fryrmnd, 26 Temmuz 2012, 13:02:50

a_a_sezen

#15
 fryrmnd hocam, mahçup oldum. İlginiz için teşekkür ederim.
............
Hocam xc8 in helpinde açıklanan xc.h de şöyle bir kullanım daha varmış.
_delay() ve _delay3()
Ancak fonksiyon prototipini eklemeden çalışmıyor.

#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
void _delay(unsigned long cycles);
void _delay3(unsigned char cycles);
int main(int argc, char** argv) {
    char i,j,c;    
    TRISD = 0;
    PORTD = 0;
    TRISB = 0;
    PORTB = 0;
    _delay(100);
    while(1){
        for(i = 128, j = 1; i > 0; i /= 2, j *= 2){
            PORTD = i;
            PORTB = j;
            PORTB = ~PORTB;
            for(c = 0; c < 3; c++)
            _delay3(100000);
        }
    }
    return (EXIT_SUCCESS);
}
Güce ve Geleceğe Güvenle...

fryrmnd

ben pek aramamıştım direk işimi gördüğü için hitech in delay fonksiyonlarını kullandım. çalıştırabildiğinize sevindim.

a_a_sezen

Buraya örneği kopyaladığımda isis denemesini de yapmıştım.
Kod üzerinde hiç bir şeyi değiştirmediğim halde derlemeye kalktığımda  _delay3() için hata vermeye başladı. Satırı iptal ettim _delay() için çalışıyor.
Çok ilginç bir durum. MicroC de benzeri davranışları sıkça sergiliyordu. Kapatıp açınca sorun gideriliyordu. Olur ya.. deyip denedim ama olmadı.
İlerde kodlardan yararlanacak arkadaşlara bilgi olsun diye yazdım.
Güce ve Geleceğe Güvenle...

fryrmnd

aynen dediğiniz gibi. tam oturmadığı için hata olmadığını bildiğiniz bir kodda hata veriyor. kapayıp açıp yada yeni projeye kopyalayıp derlediğinizde hata vermiyor. hala sıkıntısı var.

ArGeMaNiA

Arkadaşlar 16f628A projesi oluşturup, "Source Files" a main.c dosyası ekliyorum
Dosya içinde aşağıdaki kodlar var.
#include "pic.h"
int main(void) {
        return 0;
    }

Derlemeye çalışınca
[jstex]BUİLD FAILED (exit value 2, total time: 870ms)[/jstex]
bu hatayı veriyor.
Bir de alakası var mı bilmiyorum ama derleyicilerin seçildiği kısımda
derleyicilerin yanında küçük yeşil yuvarlaklar oluyor ya, XC8'in yanında o çıkmıyor.
Haydi göreyim sizi, vazife-i ubudiyetinizi unutmamak şartıyla öyle çalışınız ki,  rûy-i zemini, her tarafı herbirinize görülen ve her köşesindeki sesleri size işittiren bir bahçeye çeviriniz.

a_a_sezen

Uğraşmadan önce XC8 i yeniden kurup deneyin isterseniz.
Güce ve Geleceğe Güvenle...

Tagli

Yukarıda yazmıştım ama tekrarlayayım: XC Plugin yüklü olmalı. MPLAB'in son versiyonunda yüklü olarak geliyormuş ama senin elinde daha eski bir versiyon varsa plugin yüklü olmayabilir.
Gökçe Tağlıoğlu

ArGeMaNiA

#22
Yok hocam son sürümleri.Yine de kontrol ettim plugini yüklü görünüyor.
Antivirusu kapattım, firewall'ı kapattım.Dosyayı yeniden indirdim.
Admin olarak çalıştırdım.Artık kurulmuyor.
"Licensing Error" veriyor.
Aynen aşağıdaki...
http://www.microchip.com/forums/m671517.aspx

mesaj birleştirme:: 28 Ağustos 2012, 10:41:03

Sonunda kuruldu ama değişik bir şey yapmadım.
Yaptıysamda farketmedim.Kur-sil kur-sil dün geceden beri
farklı bişey yapmadım.Sonunda çalıştı.

Ama şunu söyleyebilirim; derleyici seçme aşamasında derleyicinin yanındaki
yeşil küçük daire yoksa problem var.Önceden çıkmıyordu.Şimdi çıkıyor ve derledi.

Buna kıyas edersek lek yak söndür örneği bir ay sürer herhalde  >:(
Haydi göreyim sizi, vazife-i ubudiyetinizi unutmamak şartıyla öyle çalışınız ki,  rûy-i zemini, her tarafı herbirinize görülen ve her köşesindeki sesleri size işittiren bir bahçeye çeviriniz.

ArGeMaNiA

#23
Arkadaşlar bütün problem Comodo Firewall'dan kaynaklanıyordu herhalde..
Silince hiç bir problem kalmadı.

Bir sorum var.Pro versiyonda %40 daha küçük kod oluşur diyor.
Bu durum sadece daha çok kod yazılabilinmesi ile mi  ilgili,
yoksa programın performansı da artıyor mu?
Haydi göreyim sizi, vazife-i ubudiyetinizi unutmamak şartıyla öyle çalışınız ki,  rûy-i zemini, her tarafı herbirinize görülen ve her köşesindeki sesleri size işittiren bir bahçeye çeviriniz.

t2

 XC8 ile 16F demo kodunu derliyorum. Bu kodların hex e dönüşmeden önceki nihai halini ifade eden dosya nedir acaba? asm olarak veya buna en yakın halini bulabilir miyim?

Tagli

IDE icinde disassembly listing gosteren bi yer var, C kodlarinin hangi asm kodlarina donustugunu gosteriyor. Bu bilginin ayri bir dosya olarak da saklandigini saniyorum ama nerede oldugunu bilmiyorum, merak edip bakmadim hic, hep IDE icinden eristim.
Gökçe Tağlıoğlu

t2

Tamam bunu gördüm. acaba bu asm kodu alsak assembler ile derlesek olur mu? Daha sonra asm bazında rütüş yapmak veya Proton derleyicisinde oluşturduğum asm koddan buna ekleme yapmak istiyorum. veya tersi de olabilir. bundan alıp onun asm koduna yapıştırmak asm olarak derlemek.  deneme yapsam iyi olacak.

Tagli

Sanırım olur. Ancak farklı derleyiciler tarafından derlenmiş kodları birleştirmek sıkıntı yaratır. Hatta XC8'i derlediği iki farklı programın asm kodlarını bile birbirine karıştırmak doğru değil. Derleyiciler yaptıkları neredeyse tüm işlemler için, dahili durumlarını ve bazı diğer değişkenleri sakladıkları yazılımsal bir yığın kullanıyorlar. İki farklı asm kodunu birleştirmeye çalışırsan bu yığınları bütünlüğünü bozarsın büyük ihtimalle.
Gökçe Tağlıoğlu

metaltrrocker

Konuyu hortlatıyorum biraz ama.Başlık uygun olduğu için bu konunun altına yazmak istedim.
Bendeki ilaçlı XC8 de derleyici çıktıları mesela hex dosyası "projeismi.X.production.hex" tarzında oluyor.Arada bir nokta daha olmasını kaldıramayan proteus da bunu kabul etmiyor.Nette araştırınca da bununla alakalı birşey bulamadım.
yardımlarınızı bekliyorum.

a_a_sezen

Alıntı yapılan: metaltrrocker - 02 Ağustos 2013, 05:58:22
Konuyu hortlatıyorum biraz ama.Başlık uygun olduğu için bu konunun altına yazmak istedim.
Bendeki ilaçlı XC8 de derleyici çıktıları mesela hex dosyası "projeismi.X.production.hex" tarzında oluyor.Arada bir nokta daha olmasını kaldıramayan proteus da bunu kabul etmiyor.Nette araştırınca da bununla alakalı birşey bulamadım.
yardımlarınızı bekliyorum.

Project Properties -> Building  altında ImageName olarak tanımlı gördüm ancak düzenleme seçeneği sunmamış...
Güce ve Geleceğe Güvenle...