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.
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)
AVR Studio 5 kullanıyorum. Makefile dosyaasını buldum fakat söylediğiniz satırlar yok.
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
Cevaplarınız için teşekkür ederim. En azından konu aydınlandı. :)