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.
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.
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.