avatar_furkan41

IRP BİTİ HATASI.

Başlatan furkan41, 05 Aralık 2018, 22:08:22

furkan41

 IRP bit must be set manually for indirect access to 'nabizgoster' variable sicaklik_ve_nabiz.c

Arkadaşlar bir proje yapıyorum ilk kez böyle bir uyarı ile karşılaşıyorum derlemesine derliyor ama böylede bir uyarı veriyor. ve deneme sonuclarımda timer kesmesinde programın tıkanıp kaldığını gördüm. bunun nedeni nedir ? bu IRP bitini IDE ve kütüphaneler kendileri otomatik ayarlamıyor mu ?

Daha önce başına gelmiş olan varmı sadece merak ediyorum. bu sorunun cevabını.

furkan41

Arkadaşlar Yığın hatasıda almıyorum ama bu hatayı timer ile yaptığım projede bir döngünün icine ic ice bir kaç sorgulama yaptığımda alıyorum son sorgulamımı silince düzeliyor ama ASM öğrenirken bankların ne olduğunu biliyordum öğrenmiştim yalnız bunun IRP bit hatası otomatikman bank hatası demektir de benim ne alakam var bankla bunu bana acıklayan bilen olur mu ?

ete

Bu derleyicinin kendi hatası. Bana kalırsa başka bir sürümünü kurmaya çalış. Başka türlü giderilemez diye düşünüyorum.
Ete

furkan41

Hocam kullandığım IDE Mikroelektronikanın en son piyasaya sürdüğü sürümü yalnız ben tabi buna 300 dolar verip almadım. öyle bir parada yok bende. ilk kurduğumda 2k programdna sonrası demo limit yiyordum bildiğiniz üzere daha sonra buna crack bastık demo limiti cözmüştüm yalnız diyorum ki acaba crackten dolayımı böyle sacma sapan bir hata alıyorum ? IRP biti hatası ile karşılaşan kişilerde varmış Mikroelektronikanın formunda böyle konu acılmış başka forumlarda acılmış o konularada baktım ve hepside mikroC kullandıklarını aynı Ideleri kullandıklarını belirtmişler acılan konular eski konular demekki eski IDE'de de böyle sorunlar varmış yeni versiyonda bu hatanın hala barınması garip.

Daha sonra araştırmaya devam ettikce yetkililerin IDE nin bank ayarı yapmadığını belirtmemiş bu sorunu 16F ailesinin verdiğini 18F gecilirse böyle bir sorun ile karşılanmayacağını söylemiş. tamam güzel demiş hoş demişte ben programın hiç bir yerinden bank1 gecmiyorum ki bank0 geri geleyim :D garip neyse buda bir tecrübe biraz üzerinde uğraşacağım.

ingilizcem pek yok ama anladığım kadarıyla fonksiyonlar icersinde ne oluyorsa programa bank değiştiriyor banada o yüzden hata veriyor değişkenleri kafasına göre bank bank atayabilirmi bu ?  zaten coğu kütüphaneye INIT diyor başlatıyoruz allah bilir icinde nereye ne yapıyor.

ete

Sen program içinde bank değişikliği yapmıyorsun ama işlemci Asm komutlarını icra ederken sürekli bank değiştirir. Özellikle işlemcinin kendi özel registerlerine bilgi yazılması  bank değişikliği ile yapılır. Sorun buradan kaynaklanıyor.
Ete

furkan41

Asm Tagi acıp STATUS registerinden bank0 gecirdim programı yine aynı hatayı aldım O an hangi bankta olması gerekiyor cözemedim gitti hocam.

ete

Data sheet e bakarsan bulabilirsin aslında ben şunu buldum orada,


BCF  STATUS, RP1
BSF  STATUS, RP0   ; select Bank1
MOVELF   0x0F        :
MOVWF    TRISA


Gördüğün gibi işlemci TRIS registerine bir değer vermek için ASM de bank değiştirip öyle yapıyor bu işi.

Ete

furkan41

Arkadaşlar uzun uğraşlar sonucu gördük ki LCD kütüphanesi bol bol pointer kullanıyor bu yüzden ram gözlerinde cakışmalar oluyor. siz siz olun hazır kütüphane yerine kütüphaneyi kendiniz yazın. sonra işte böyle sacma sapan hatalar oluşuyor

Powered by EzPortal