Atmega32 Float değer gönderim sorunu

Başlatan piskopatisa, 30 Haziran 2011, 12:51:23

piskopatisa

Arkadaşlar selamlar.
Atmega32 ile bir sorunum var. Usart ile veri gönderirken
örneğin;
float x=12.34;
printf("%f",x);

böyle bir ondalıklı gönderim yaptığım zaman sadece '?' gidiyor.
tam sayı gönderimde problem yok sadece float değer gönderemiyorum.

parda

GCC kullandığınızı varsayarak MAKEFILE dosyasının ilgili yerini aşağıdaki gibi düzenleyiniz.
# Minimalistic printf version
PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min

# Floating point printf version (requires MATH_LIB = -lm below)
PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt

# If this is left blank, then it will use the Standard printf version.
PRINTF_LIB = $(PRINTF_LIB_FLOAT)


Bildiğim tek şey, hiç bir şey bilmediğimdir.

piskopatisa

AVR Studio 5 kullanıyorum. Makefile dosyaasını buldum fakat söylediğiniz satırlar yok.

Klein

#3
Printf ve saz arkadaşları  bellekte oldukça büyük yer kaplarlar.  Özellikle floating point işlemler kodu şişirdikçe şişirir. Bu yüzden bazı derleyicilerin yayıncıları birkaç tane "printf(...)" yazarlar. Bunların birinde float yoktur. Olmadığı zaman da genelde "?" basarlar. Bazı derleyicilerde  derleyici opsiyonlarında bu ayar bulunur. Bazılarında  hangi kütüphanenin veya hangi versiyonun kullanılacağı doğrudan dosyalarda deklare edilir. Derleyici opsiyonlarına bir gözat. Orada "printf(..)" ile ilgili bir opsiyon olabilir.

Örn: Iar da project>options>general options>library options  başlığı altında.

bu link işine yarayabilir
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&p=238350

piskopatisa

Cevaplarınız için teşekkür ederim. En azından konu aydınlandı.  :)