dizi indis i 0 dan başlamak zorundamı

a.zorba

Aktif Üye
Katılım
17 Eylül 2019
Mesajlar
115
C dilinde dizi index i 0' dan degilde örnek 300 den başlayıp 400 de bitsin gibi bir durum olabilirmi 0 dan başlamak zorun damı.
 
Ne gibi bir avantaj getirecek?

Mantiken 0'dan baslamak zorunda.
 
stm32f ile delta hmi arası haberleşme yapıyorum delta adresleri 4000 ile 5000 arasında oraya ulaşmak için delta nın orjınal programınıda bozmak istemiyorum.
 
Adsız.jpg
2-jpg.36297

5000 elemanlı bir dizi tanımlayarak yaptım bunun daha kolay bir yolu arayışındayım.
 

Ekler

  • 2.jpg
    2.jpg
    53.6 KB · Görüntüleme: 143
C/C++ dilleri hiçbir indeks kontrolü yapmazlar. İndeksin mantıklı veri olan yere işaret edeceğini senin algoritma ile garantilemen lazım.
 
Deltanın programını kurcalamana gerek yok.Register adresleri sabittir zaten.Sizin yapacagınız hmi den hangi registerleri okuyacaksanız onun komutunu Stm32 den göndermeniz.Cihazlardan hangisinin master;hangisinin slave olduguna dikkat edin.Master cihaz komut gönderdigi zaman slave cihaz cevabını gönderir.Stm32 yi master yapın.Control tech denen youtube kanalında çok güzel uygulamalar var.İzlemenizi tavsiye ederim.
 
veri gönderme, alma, ASCII, RTU, master veya slave yapmada sıhıntmı yok .
program hafızam çok yer kaplıyor onu azaltmaya çalışıyorum .
işimi görecek şekilde azaltabilirim ama her seferinde ugraşmaktan sa universal 0lmasını istedim o da şimdiki programlama mantıgım ile program hafızam küçülmeyecek gibi.
cevaplar için teşekkur.
 
Program hafızadaki ram alanını gereksiz yere hexamal 1000 yada desimal 4096 adresinden başlattığın için 4Kb lık ram atıl durumda demek istiyorsun herhalde. Bunun çözümünü @Mehmet.b şu mesajda belirtmiş zaten.
Örneğin;
-Sana 220 byte bir dizi gerekliyse eleman sayını 220 olarak tanımla
Sonra işlemler esnasında (index + 4096) yada (index=döngü değişkeni - 4096) yaparak istediğini kolayca gerçekleştirebilirsin.
 
pointer var, custom typecast var, hafıza alanı tasarrufu yapabilirsin, sadece dönüşümler için işlem zamanı artar. Adresler için byte kullanırsın, veriler için zaten ram kullanılacak.
 

Çevrimiçi personel

Forum istatistikleri

Konular
7,103
Mesajlar
121,003
Üyeler
2,878
Son üye
burakgul

Son kaynaklar

Son profil mesajları

az bilgili çok meraklı
Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Back
Top