Float Değeri Eeproma Kaydetme

Başlatan Foxfort, 22 Kasım 2021, 11:18:36

Foxfort

İyi günler

Mikroc de float değeri eeproma yazdırırken problem yaşıyorum "0.00" formatında bir float değeri eeproma nasıl kayıt edebilirim.

ete

Her şeyden önce epromların float kaydı için uygun olmadığını belirterek sözüme başlayayım. Zira epromlar yanlızca 8 bitlik tam sayılar ile çalışır onları kaydedebilir.

MikroC bu konuda nasıl bir yol izliyor bilmiyorum ancak merak ediyorum. Mantık çalıştırarak sorunun aşılması için float sayıyı önce tamsayıya çevirmek gerekir. Bunun için ondalık kısımdan kaç hane alınacak ise ona göre onun katları ile sayıyı çarpak gerekir. Sen 0,00 dediğine göre virgülden sonra iki haneyi alacaksın. Bu durumda word değişkeni kullanarak sayıyı 100 ile çarpıp bir WORD Integer değişkenine aktarman gerekir. Sayı 16 bit integer olacağı için bu sayıyı 8 er bitlik iki kısma ayrıman gerekecek. HIGH BYTE kısmı, HB=SAYI/256 işlemi soncunda bulunur. LOW_BYTEkısmı ise LB=SAYI-(HB*256) işlemi sonucunda bulunur. Böylece elinde 3 byte lik sayıyı istediğin sırada eproma kayıt edebilirsin. Kayıt ettiğin sırada alıp tekrardan word 'e çevirmen gerekir. SAYI=HB*256+LB  şeklinde.

Ete

Foxfort

Teşekkür ederim dediğiniz mantıkla yapmaya çalışıcam.

Powered by EzPortal