header dosyalarını kendimiz yapabilirmiyiz???

Başlatan hsaglam, 19 Temmuz 2006, 23:47:36

hsaglam

merhaba arkadaşlar
Pic programlarken kullandığımız delay.h lcd.h lcd.c gibi program başında çağırdığımız ve kullandığımız header dosyaları aslında kullanıcı tanımlı bir dosyamıdır?

Eğer öyleyse program içinde birden çok kez kullandığımız rutinleri bir header dosyası gibi yapıp programın başında #include ile çağırıp kullanabilirmiyiz?

ipek

orijinal dosyayi hic bozmayin kopyalayin yeni bir tane yaratin ornek
delay dosyasi farz edelim bu dosya delay hizmetini size tam veremiyor
degerleri istediginiz gibi ayarlayin kaydedin misal delays olsun boylece
hem orijinallik bozulmamis olur microchip mp assembler'de disaridan
istediginizi cagirabilirsiniz kisitlama yok yeterki cagirdiginiz dosya mantik
cercevesinde olsun ornek bir adress ram locasyonu hem iceriden hem disaridan cagrilamaz c ile yaziyorsaniz bunu bilenlerin cevaplamasi daha
dogru olur kolay gelsin....
not mplab asm haliyle ccs yada pic basic pro gibi kolayliklara sahip değildir bank degistirmek icin makroda yazabilirsin yada dusundugun gibi
kendi include dosyasini yazip banklari bunun icinden cagirabilirsin.... ornek  16f877.inc dosyasini editleyip en alt kismindaki list satirinin bir ustune kopyalayabilirsin



Bank0      MACRO         ;macro to select data RAM bank 0
      bcf   STATUS,RP0
      bcf   STATUS,RP1
      ENDM

Bank1      MACRO         ;macro to select data RAM bank 1
      bsf   STATUS,RP0
      bcf   STATUS,RP1
      ENDM

Bank2      MACRO         ;macro to select data RAM bank 2
      bcf   STATUS,RP0
      bsf   STATUS,RP1
      ENDM

Bank3      MACRO         ;macro to select data RAM bank 3
      bsf   STATUS,RP0
      bsf   STATUS,RP1
      ENDM

list

hsaglam

teşekkür ediyorum.
ben hitech c ile uğraşıyorum header dosyalarının rutinlerini incelerken bu konu aklıma geldi. neticede lcd.c delay.c gibi dosyalar aslınca c ile yazılmış rutinler.
Örneğin programı yazan
lcd_init();
diye bişey tanımlamış ve o rutin de lcd'yi başlatmış falan...
C de biraz ileri seviyedeki arkadaşlar da bu konuda birşeyler paylaşırsa minnettar kalırım şimdiden teşekkürler.

piedos

hitech c de lcdyi altsatıra geçirmek için örnek fonksiyon var mı

CCS de kaynak kod var ama CCS ansiC olmadığı için bir türlü hitech e uyarlayamadım
Einstein: "Only two things are infinite, the universe and human stupidity, and I'm not sure about the former."

hsaglam

değerli arkadaşım
programda lcd'ye yazdırma işlemini yaptığın komut satırından önce pozisyon bilgisini verebilirsin

örnek
.
.
lcd_goto(0x00+5);
lcd_puts("merhaba);       ----> lcd'nin 1.satır 5. sütununa yazar

veya

lcd_goto(0x08+5);
lcd_puts("merhaba);       -----> lcd'nin 2. satır 5. sütununa yazar

bu dediklerim hmd44780 (LM016L) lcd için geçerli
kolay gelsin

hsaglam

pardon kodlamayı hatalı yapmışım çalışanı bu

örnek
.
.
lcd_goto(0x00+5);
lcd_puts("merhaba"); ----> lcd'nin 1.satır 5. sütununa yazar

veya

lcd_goto(0x08+5);
lcd_puts("merhaba"); -----> lcd'nin 2. satır 5. sütununa yazar

bu dediklerim hmd44780 (LM016L) lcd için geçerli
kolay gelsin

hsaglam

bu komut için detaylı olarak include klasörünüzün içindeki lcd.c ve lcd.h
header dosyalarının içeriğini inceleyerek daha detaylı bilgi edinebilirsiniz
(port bağlantı blgileri, komutlar ve kullanımı gibi)

piedos

Alıntı yapılan: "hsaglam"değerli arkadaşım
programda lcd'ye yazdırma işlemini yaptığın komut satırından önce pozisyon bilgisini verebilirsin

örnek
.
.
lcd_goto(0x00+5);
lcd_puts("merhaba);       ----> lcd'nin 1.satır 5. sütununa yazar

veya

lcd_goto(0x08+5);
lcd_puts("merhaba);       -----> lcd'nin 2. satır 5. sütununa yazar

bu dediklerim hmd44780 (LM016L) lcd için geçerli
kolay gelsin

lcd_goto(0x80); birinci satır
lcd_goto(0x40); ikinci satır
Einstein: "Only two things are infinite, the universe and human stupidity, and I'm not sure about the former."

hsaglam

arkadaşım teşekkür ederim düzelttiğin için
aynı anda birçok pencere ile uğraşırken bu tip hatalar olabiliyor.

hsaglam

konu başlığı hakkında baya gelişme kaydediyorum(kendi header dosyasını oluşturma)

Yakında forumda bunları paylaşacağım. Bu şekilde hem programlar daha sadeleşmiş olacak okunurluğu artacak hem de  hata ayıklama geliştirme gibi işlemler daha basite indirgenebilecek.

neticede c fonksiyonların ard arda oluşturduğu programlardan oluşur. Header file ın özelliği ise diğer bir dosyadan değişken değeri alabilmesi şeklinde özetlenebilir. Neticede o da aslında bizim program içinde tanımlamış olduğumuz bir fonksiyondur.

CoşkuN

Kendi header dosyalarımızı yapabileceğimiz gibi mevcut olanları da zenginleştirebiliriz.Örneğin LCD başlık dosyasına Türkçe karakter desteği eklemek gibi...
Sonuçta bu dosyalar da birer program parçası.