Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Atmel => Konuyu başlatan: piskopatisa - 30 Haziran 2011, 12:51:23

Başlık: Atmega32 Float değer gönderim sorunu
Gönderen: piskopatisa - 30 Haziran 2011, 12:51:23
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.
Başlık: Ynt: Atmega32 Float değer gönderim sorunu
Gönderen: parda - 30 Haziran 2011, 16:30:49
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)


Başlık: Ynt: Atmega32 Float değer gönderim sorunu
Gönderen: piskopatisa - 30 Haziran 2011, 20:52:15
AVR Studio 5 kullanıyorum. Makefile dosyaasını buldum fakat söylediğiniz satırlar yok.
Başlık: Ynt: Atmega32 Float değer gönderim sorunu
Gönderen: Klein - 30 Haziran 2011, 21:01:54
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
Başlık: Ynt: Atmega32 Float değer gönderim sorunu
Gönderen: piskopatisa - 01 Temmuz 2011, 10:40:20
Cevaplarınız için teşekkür ederim. En azından konu aydınlandı.  :)