16f877a ile hesap makinesi programı yazımı

Başlatan hemso, 04 Temmuz 2010, 23:34:16

hemso

bunu denedikten sonra ise hocam dediğiniz gibi sprintf ile yapayım dedim.yukarıda bu programa ek olarak "char buffer[10]" diye bir dizi tanımladım.alttaki sonuc islemlerinden sonra ise "sprintf(buffer,"%f",sonuc); ve printf("=%s",buffer);" kodlarını koydum.ancak bu seferde "Error   [712] C:\Program Files\HI-TECH Software\PICC\PRO\9.60\lib\doprnt.c; 741. can't generate code for this expression" ve "Error   [1253] C:\Program Files\HI-TECH Software\PICC\PRO\9.60\sources\sprintf.c; 39. could not find space (152 bytes) for auto/param block" hatalarını verdi.picproje.orgun baska bir konu baslıgında yazana göre(dogrulugunu bilmiyorum) hitechte sprintf fonksiyonu sadece tamsayıları chara cevirebiliyormuş.

JKramer

Derleyicinin yardım dosyasında atof() fonksiyonunu bir inceleyin, muhtemelen CCS'de olduğu gibi float'a çevireceğiniz dizinin NULL ('/0') karakteriyle sonlanması gerekiyor.

hemso

atof
Description: Converts a string to a double precision floating-point value.
Include: <stdlib.h>
Prototype: double atof(const char *s);
Argument: s pointer to the string to be converted
Return Value: Returns the converted value if successful, otherwise, returns 0.
Remarks: The number may consist of the following:
[whitespace] [sign] digits [.digits]
[ { e | E }[sign]digits]
optional whitespace, followed by an optional sign then a sequence
of one or more digits with an optional decimal point, followed by one
or more optional digits and an optional e or E followed by an optional
signed exponent. The conversion stops when the first unrecognized
character is reached. The conversion is the same as
strtod(s,NULL).

atofun acıklamasında böyle yazıyor.bnde sizin dediğinizden yola cıkarak x,y ve sonuc degiskenlerini float yaptıktan sonra x=atof(c) ve y=atof(d) yaptım.ayrıca c ve d icin yaptıgım döngülere c[i+1]=null ve d[i+1]=null yazdım.(==13 lü kısımlardan sonra).ancak sonuc degerini bana gene 0 olarak döndürdü.bu benim yazdıgım dizilerin pointer değilde normal dizi olması bir fark yaratmıyor zannımca.onun haricindede hatanın nerden olabilecegine dair bir fikrim yok.bu arada en alttaki printf icindeki yazıyı %d yerine %f diye degistirince "Error   [1253] C:\Program Files\HI-TECH Software\PICC\PRO\9.60\sources\doprnt.c; 1537. could not find space (134 bytes) for auto/param block" diye bir hata veriyor bunun sebebi nedir peki?


fatihinanc

@serdararikan
Hocam elinize sağlık çok güzel olmuş.
Eğer kodlar Hi-Tech ise gerçekten iyi.
Nasıl bir kütüphane kullandınız biraz bahseder misiniz?
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

serdararikan

tamamen hitech  kodları kullandım.basit bir hesap makinası olduğu için kütüphane falan kullanmadım ama gelişmiş fonksiyonlar istenirse taylor serisi için kod yazmak gerebilir.şuanki amacım hesap makinası değil.asıl amacım ekrana çeşitli kompanentler basmak.şuan için buton ve textbox basabiliyorum.kompanentler tamamen koddan oluştuğu için boyutlarını değiştirebiliyorum.resim değil yani

fatihinanc

evet hocam websitenizde okumuştum.
hazır resim olmaması ve hi-tech olması çok iyi.
benim de bu tarz bir işe niyetim var ama LPCxpresso yu bekliyorum.

Ben ekrana çizdirme fonksiyonunu merak ediyorum açıkçası.
Resim basmaktan daha önemlidir bence.

Bu arada MCU 18F4520 ve kristal 20mhz değil mi?
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

serdararikan

dahili 8Mhz i PLL ile kullanıyorum fakat PIC bu iş için çok yavaş.saniyede 10 frame falan basabilsem çok daha iyi uygulamalar yapabilirim.mesela bir makina konrolü yapıyorsun.menü işini bu tarz bi TFT kullanarak yapabilirsin.LPC serisi ile bu TFT yi çok daha hızlı kullanabilirsin.sen çalışmalarına başla.ekrana bir pixel basmayı başardığın gün olay bitmiştir.gerisini yaparsın.

fatihinanc

Teşekkür ederim hocam.
Aslında şimdi başlasam iyi olur. Biraz mantığını araştırırım, örnek kodlara vs. bakarım.
Ama elimde şu an TFT yok ILI çipsetli olanlarından İstanbul'a gidince almayı düşünüyorum.
Orada daha rahat bulunur.Ayın 6 sında Cebit için geleceğim İstanbula...
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

serdararikan

tahtakaleden alırsın.kod için yardımcı olurum.

fatihinanc

teşekkür ederim hocam. TFT ekran alıp denemelere başladığımda sizi rahatsız ederim artık.
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)