Hi-Tech'de dizi tanımlama...

Başlatan Logan, 17 Mayıs 2007, 21:25:03

Logan

İyi akşamlar arkadaşlar.Basic dilinde lookup komutunu kullanırken satırın uzayıp gitmemesi için şu şekilde yazabiliyoruz;

lookup a,[ $FF,$01,$01,$01,$01,$01,$01_
              ,$61,$61,$01,$01,$01,$01,$FF_
              ,$FF,$00,$00,$00,$00,$00,$03_
             ,$1E,$1F,$10,$0E,$1F,$11,$13],b


Hi-tech te dizi tanımlarken bütün değerleri yan yana yazmak zorunda mıyız yoksa başka bir yolu var mı? Örnek;

unsigned int buff[]={0x02,0x65,0x48,0x65,0x87,0x12,0x02,0x45};


biçiminde mi olmak zorunda???

Not: Hi-Tide arabirimini kullanıyorum...
İmza.

MICROCEBEL

Altada yazabilirsin ama küme parantezini kapamadan tabi.Ne zamanki dizinin son elemanını belirttin ozaman küme paratezini kapatırsın.Kolay gelsin...

Logan

Peki @MIKROCEBEL sağolasın.Fakat yeni bir problemle karşı karşıyayım. Programda kullandığım 2 adet dizin var. Birisi "buff" diğeri ise "buff1".
Bu dizinlerin içerikleri 16 det değişkenden oluşuyor.Yani toplamda 32 adet değişken kullanıyorum.Sorunumuz şu ki ben yeni bir dizin tanımladığım zaman içerisine sadece 2 adet byte yazılabiliyor. 3. değişkeni yazdığım zaman şu hatayı veriyor;

(491) can't find 0x46 words for psect "rbss_0" in segment "BANK0"


İşlemci olarak 16F876 kullanıyorum.Bu problemi nasıl aşarım???
İmza.

ayban

bank0 da yer kalmamış oyüzden hata veriyor bunun sebebide şu hitech tüm auto değişkenleri bank0 a atar bunedenle bank0 da static değişken tanımlanmasına izin vermez,diziyi 1,2veya 3.bankta tanımlarsanız sorun kalmaz örnek:
bank1 unsigned int buff[]={0x02,0x65,0x48,0x65,0x87,0x12,0x02,0x45};
eğer bu diziyi static olarak tanımlamak istersenizde:
static bank1 unsigned int buff[]={0x02,0x65,0x48,0x65,0x87,0x12,0x02,0x45};şeklinde yazmanız gerekecektir.
"Tek kitap okuyandan kork!"

Logan

@ayban, cevabın için teşekkür ederim.Kullandığım dizinlerin birini Bank0'da, diğerini ise Bank1'de tanımladım ve bahsettiğiniz şekilde problemi çözdüm.İyi akşamlar, iyi çalışmalar...
İmza.