Acemi! XC8 Sorusu : Fonksiyon Çalışmıyor

Başlatan izturk, 14 Eylül 2015, 17:53:25

izturk

Merhaba Arkadaşlar,

XC8 i kurdum öğreneyim dedim. Ama işin başında çuvalladım. Yardımınızı rica ediyorum.

projemi oluşturdum. code configrator ile ayarları yaptım. led yakma uygulaması yazdım derledim ve çalıştı. ama en basit şekliyle led yakma satırını farklı bir fonksiyon olarak tanımlayınca çalışmıyor.

çalışan kod
long i=0;

void main(void) {
 SYSTEM_Initialize();
   TRISEbits.TRISE1 = 0;
    while (1) {
        // Add your application code
       
        LATEbits.LATE1 = 1;
        for(i=0;i<60000;i++);

        LATEbits.LATE1 = 0;
        for(i=0;i<60000;i++);

        
    }
}


çalışmayan kod
long i=0;

void led_yak(void)
{
LATEbits.LATE1 = 1;
    
}


void main(void) {
SYSTEM_Initialize();
    TRISEbits.TRISE1 = 0;
    while (1) {
        // Add your application code
        led_yak();
        
        for(i=0;i<60000;i++);

        LATEbits.LATE1 = 0;
        for(i=0;i<60000;i++);

        
    }
}


bir de her seferinde bu uyarıyı veriyor:
:: warning: (1459) peripheral library support is missing for the 18F46K22

herkese iyi çalışmalar

mehmet

#1
Led yanık mı kalıyor yoksa hiç yanmıyor mu?


Ek: Olmayan çevre birim kütüphaneleri eklenmiş diyor anladığım kadarıyla.
http://ww1.microchip.com/downloads/en/DeviceDoc/xc8-v1.21-readme.pdf
Sayfa.5
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

izturk


Gökhan BEKEN

proteus projesi varsa(7.10 versiyonlu),  xc8 projenizi ve proteus projenizi gönderin ben de bir deneyim.
Özel mesaj okumuyorum, lütfen göndermeyin.

izturk

Hocam proje dosyasını ekliyorum. ben gerçek kartla deniyorum. zaten proteus şemasında bişey yok. e1 pinini açması yeterli

https://www.dropbox.com/sh/kkwtud6oagjwdfk/AAA3lTKwpr8jodMfTmSTkQX1a?dl=0

t2

#5
zip yapıp da ekleseydiniz daha kolay olurdu 50 tane dosya indirip klasöre koyup denememiz zor oalcak.
neyse ki yukarıda download as zip yazıyormuş hepsi tek seferde indi

izturk

#6
siz yazınca farkettim hocam hemen düzeltiyorum

https://www.dropbox.com/s/xitgzzb06luyobd/cx8%20lcd.rar?dl=0


hocam şimdi denedim. proteus ta iki kod da çalışıyor. ama gerçekte fonkisyonlu olan çalışmıyor

t2

#7
fonksiyon çalışıyor. proteusta gördüm. fakat çok hızlı çalıştığı için belki siz göremediniz. işlemci hızı 4Mhz seçiliydi onu değiştirmeden çalıştırdım. göründü

aşağıdaki şekilde çalışıyor. yakma işini fonksiyon yapıyor

    while (1) {
        // Add your application code
        led_yak();

        for(i=0;i<60000;i++);

        LATEbits.LATE1 = 0;
        for(i=0;i<60000;i++);

        
    }

izturk

hocam ben de şimdi denedim proteusta iki şekilde de çalışıyor. ama gerçekte fonksiyonlu olanı çalıştıramadım.

mehmet

#include "mcc_generated_files/mcc.h"
satırını;
#include "mcc_generated_files\mcc.h"
olarak değiştiriniz. Ayrıca bu satırın üstündeki satırı siliniz...
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

t2

Bekleme kısmı gerçekte çok hızlı olduğu için görünmemiş olabilir mi? proteus yavaş çalışarak göstermiştir.

belki de bu pin open  drain olabilir. gerçek devrede pull up gerekebilir.

izturk

#11
Alıntı yapılan: mehmet - 14 Eylül 2015, 18:48:38
#include "mcc_generated_files/mcc.h"
satırını;
#include "mcc_generated_files\mcc.h"
olarak değiştiriniz. Ayrıca bu satırın üstündeki satırı siliniz...


denedim hocam bi değişiklik yok

mesaj birleştirme:: 14 Eylül 2015, 19:03:13

t2 hocam gerçekte lcd ledini yakıyorum. foknsiyon yokken yanıp söndüğünü görebiliyorum. fonksiyonu çağırınca iş bozuluyor.

mehmet

pin_manager.c içerisinde ANSELE = 0x07; tanımlanmış. PORTE ve hatta
tüm pinler analog yapılmış...
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

izturk

code configrator den e1 pinini çıkış yapıyorum. ANSELE = 0x05 oluyor.

yine de değişen bişey yok. fonksiyon bir türlü çalışmıyor. her iki ayarda da fonksiyonsuz her türlü çalışıyor ama

mehmet

:: warning: (1459) peripheral library support is missing for the 18F46K22
hatası için;
Proje üzellikleri->XC8 global options->Additional options
bölümüne:
--runtime=-plib
satırını ilave ediniz.

Bir de;
mcc.c içerisindeki;
OSCCON = 0x72;
satırını
OSCCON = 0x70;
olarak değiştirip deneyiniz...

Elimde ilgili mcu olmadığı için ancak simülator
ve isis 7.10 ile test edebildim...
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr