CCS de Kendi Tanımladığımız Kayıtcının, İsis variables liste dışı yapılabilirmi

Başlatan rree, 09 Kasım 2011, 15:52:04

rree

 Hi tech de olduğu gibi kayıtcılara doğrudan işlem yapmak için .  dosyasını include ile eklememiz yeterli. Pic projede  bir arkadaş mikro c den ccs header  SFR-Def   klasörü  oluşturmuş.
Benim denememde "include P16F870.h"   ekledim
PortA=5; artık diyebiliyoruz.
Derlemede problemsiz çalışıyor .

Fakat isis debug variable listesinde bütün kayıtcıların  görüntüsü çıkıyor.
Ben istiyorumki sadece değişkenlerin listesi gelsin .
Variable listesi oldukça kaparık. Bu SFR-Def dosyasını başka şekilde tanımlamak mümkünmü.
İsis debug listesinde gözükmesin.

"P16F870.h"  içeriği
// Special function registers
#byte INDF = 0x0000
#byte TMR0 = 0x0001
#byte PCL = 0x0002
#byte STATUS = 0x0003
#byte FSR = 0x0004
#byte PCLATH = 0x000A
#byte INTCON = 0x000B
#byte PIR1 = 0x000C
#byte PIR2 = 0x000D
#byte TMR1L = 0x000E
   
  Şu şekilde değiştirdiğim zaman adres olarak anlamıyor. İsis debug variable listesinde çıkmıyor.
// Special function registers
#Define       INDF = 0x0000
#Define       TMR0 = 0x0001
#Define       PCL = 0x0002
#Define       STATUS = 0x0003
#Define       FSR = 0x0004
#Define       PCLATH = 0x000A
#Define       INTCON = 0x000B

  Bunun bir yolu olmalı düşünüyorum. Kayıtcılara öyle bir tanımlamalıki isis debug variable listesine girmesin.



 

GreeN

#Define       INDF  0x0000
#Define       TMR0  0x0001
#Define       PCL  0x0002
#Define       STATUS  0x0003
#Define       FSR  0x0004
#Define       PCLATH  0x000A
#Define       INTCON  0x000B


#define sanırım yukarıdaki gibi kullanılmalı yani "=" olmayacak.
Terörü Lanetliyoruz.

rree

  Doğru  o şekilde değiştirdim.

Aşağıdaki hatayı veriyor
#Define PORTB  0x0006
.
.
.
.
PortB=PortB&PortBy;// Brada PortB= hata gösteriyor
// HAta mesajı  Expecting LVALUE such as a variable name  or  * expression


Aşağıdaki gibi tanımlarsam hata yok .Fakat  isis  debug variable listesinde PortB  yi değişken olarak görüyorum
Listede çıkmaması için ne yapılabilir.  PortB bir tane önemli değil  tüm kayıtcıları tanımladığımızda tüm kayıtcılar isis in variable listesinde gözüküyor. İstediğimiz değişkenleri gözetlemek  zor hale geliyor.
#byte   PORTB= 0x0006
.
.
.
.
PortB=PortB&PortBy;//  Hata yok


RcALTIN

#define bir önişlemci komutu, yani derleyiciye önceden bir şeyleri tanımlamak için kullanılanılıyor.

örneğin programımın başlarında bir yerde, #define abc 5 dediğim zaman, derleyici içinde artık nereye abc yazsam, 5 yazmışım gibi ele alıp, ona göre kod üretir, bu yüzden isis içinde değişken olarak da görünmez.

Alıntı yapılan: rree - 09 Kasım 2011, 16:59:00
#Define PORTB  0x0006
.
.
.
.
PortB=PortB&PortBy;// Brada PortB= hata gösteriyor
// HAta mesajı  Expecting LVALUE such as a variable name  or  * expression


ama siz burada önceden tanımlanan veriyi değişken olarak kullanmaya(değiştirmeye) çalışıyorsunuz, sanırım sorun da o.
derleyici onu şöyle anlıyor:

0x0006 = 0x0006 & PortBy;

ve doğal olarak sabit bir sayıya atama yapamıyor.
KİMSEYİ ENGELLEDİĞİM YOK, ÖZEL İLETİ DEVRE DIŞI !

rree

#Byte PORTB=0x0006
#Byte TMR1L=0x000E
#Byte TMR1H=0x000F

Yukarıdaki örnekte çalişıyor isis varible listesinde gözükmemesi için ne yapılabilir.

JKramer

Gözükmemesi için ne yapılabilir bilmiyorum ama görmek istediğiniz değişkenleri tutup watch window'a sürükleyebilirsiniz.