Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

sprintf() kullanımı

Başlatan psiko, 15 Mayıs 2005, 18:06:42

psiko

sprintf(goster+10,"%d",santigrat);

burda santigrat değişkeni int değil de float türünde olursa olursa virgülden sonra 1 basamağını gösterecek şekilde nasıl alabilirim?

sprintf(goster+10,"%f",santigrat);

yapınca olmuyor. virgülden sonra sadece 1 basamak almak için ne yapabilirim?

aykuto

sprintf(goster+10,"%3.1f",santigrat);

mistek

#2
2x16 karakter LCD'ye float sayılar yazmak için sprintf() ile yazdırılacakları bi kalıba sokuyorum ondan sonra lcd'ye gönderiyorum.

sprintf() kullanmak bana Keil'de yaklaşık 5kB lık alana mal oluyor. sprintf yerine bu işi kolay yoldan nasıl yaparım?

(Yeni konu açmak istemedim burası Hi tech alanıymış kusura bakmayın)
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

mistek

boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

mistek

5KB benim için çok önemli lütfen yardım :(
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

Kazım

#5
Alıntı yapılan: mistek - 15 Şubat 2014, 22:25:37
5KB benim için çok önemli lütfen yardım :(

Fırat DEVECİ 'nin Hi-Tech C ile Pic Progl. kitabından alıntı yapılmıştır. Ktaptaki kütüphaneleri kendi yazdığı için, mantıksal,bitwise,compound operatörler çok kullanılmış.Tavsiye ederim.

yazmayı unutmuşum
int sicaklik=0;    // değişken integer tipinde olacak




lcd_init();  // LCD ilk ayarları yapılıyor
lcd_yaz("Sicaklik Degeri");
for(;;)
{
CHS2=0;    // AN0 seçiliyor
CHS1=0;
CHS0=0;
DelayUs(25);
ADGO=1;    // Çevrim baĢlatılıyor
while(ADGO);
sicaklik=(int)((ADRESH*256+ADRESL)*48); // Hesaplama yapılıyor
lcd_gotoxy(2,5);   // Okunan değer LCD'ye yazılıyor
veri_yolla(sicaklik/1000+48);
veri_yolla((sicaklik%1000)/100+48);
veri_yolla('.');
veri_yolla((sicaklik%100)/10+48);
veri_yolla(sicaklik%10+48);
veri_yolla(0xDF);   // Derece iĢareti oluĢturuyor
veri_yolla('C');
}


2. yöntem;

unsigned char floatVal[6];
onlar=(sicaklik/1000+48);
birler=((sicaklik%1000)/100+48);
virgul=',';
kesirOnda=((sicaklik%100)/10+48);
kesirYuzde(sicaklik%10+48);
floatVal[0]=onlar;
floatVal[1]=birler;
floatVal[2]=virgul;
floatVal[3]=kesirOnda;
floatVal[4]=kesirYuzde;
floatVal[5]='C';
lcdYaz(floatVal);