HITECH, SPRINTF problemi

Başlatan EES, 14 Mart 2005, 09:31:20

EES

Hi-Tech Pic18 v8.30  

LONG değişkeni string'e çevirmiyor.

int adet=100;
long toplam=100;

sprintf(str,"%d",adet); //Bunda sorun yok.str="100"

sprintf(str,"%l",toplam); // bunu çevirmiyor.str="l"

sprintf(str,"%u",toplam); // toplam 65535 'e kadar çeviriyor.65536 'yı 0(sıfır) alıyor.

ilginen arkadaşlara teşekkürler.

umar

Arkadaşım

 Mplab'da  
  project
     Build Options...
        Project
   
PICC-18 Linker menüsünde "printf support" kısmından "Integer + Long" seçeneğini işaretlersen problemin çözülür.
Bu Memleket Bizim.

EES

maalesef,sorun yine devam ediyor...



%l kabul etmiyor.
%u 65535 'den sonra 0'dan başlıyor.

baha_35

sayıları bir döngüde basamaklarına ayırırsan mesala;


while(sayi>=100)
{
yuzler++;
sayi=sayi-100;
}
while(sayi>=10)
sayi=sayi-10;
{
onlar++;
}
birler=sayi;

ayırdıktan sonra
lcd_write(48+yuzler);
lcd_write(48+onlar);
lcd_write(48+birler);

diye yazarsan bi sorun olmaz boyle yazmanın dez avantajı buyuk sayılar da daha cok dongu kullanılması oluyo....
"DÜNYA BİR GÜNDÜR ODA BU GÜNDÜR"

EES

PIC c18 programını crac*k kullanırsan LONG,FLOAT değişkenleri kullanamıyorsunuz.Microchip'in  forumuna bakarsanız aynı cevabı bulursunuz..
Bunun yerine kendin bir fonksiyon ile sorunu çözebilirsin.