virgüllü değer kullanma

Başlatan mustafa6106, 01 Temmuz 2010, 23:05:00

mustafa6106

aklıma takılan bi soru var her hangibi bir derleyici ile pic'e virgüllü değer girilebilrmi.saru biraz saçma oldu sanki.örneğin:1,5 gibi değer girilebilirmi?

muhittin_kaplan


mustafa6106

C dilini daha yeni öğrenmeye başladım.basici iyi biliyorum.bu basicde mümkünmüdür?

muhittin_kaplan

şimdi olayı biraz irdeleyelim.ondalıklı değer yazmak istiyorsan çeşitli yöntemleri var (nereye yazacaksın oda önemli) 10,29 u 1029 olrak kaydedebilirsin (basicde word değişken türü ile) bu değeri LCD vs de göstermek istediğinde blerek vs yaparak gösterebilirsin. PBP da durum bu
Proton Plus ta doğrudan Float tanımlama yapabilirsin.

mustafa6106


OG

Sonrasını önce yazmış, yani PBP da,
Alıntı Yapondalıklı değer yazmak istiyorsan çeşitli yöntemleri var (nereye yazacaksın oda önemli) 10,29 u 1029 olrak kaydedebilirsin (basicde word değişken türü ile) bu değeri LCD vs de göstermek istediğinde blerek vs yaparak gösterebilirsin.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

mustafa6106

tamam anladım.örneğin 21.37 rakamını 2137 olarak yazabilirim ve bunuda word olarrk tanımmlamm gerek

muhittin_kaplan

word 16 bittir ve 1023 den büyük deger alamaz. Dword yaparsan 32 bit kaydedebilirsin

fatihinanc

@muhittin kaplan
16 bit = 65535 değil mi?
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

mustafa6106

PicBasicPro en fazla 16 bitlik değişken tanımlayabiliyor.sanırım bunu proton ile yapmam gerek

muhittin_kaplan

Evet Yanlışlık Yapmşım. Düzeltme için teşekkür ederim
Word 16bit 65535 dir

mustafa6106

korkuttunuz beni dspic kullanmak zorunda kalırdım yoksa.buda projemi oldukça malyetli hale getirebilirdi

Ankaralı

#12
Konuyu fazla dağıtmak istemiyorum ama asm ile float işlemler yapılabilirmi?

Geçen sene şöyle bir şey hesaplatmıştım pic ile.Programı protonda yazmıştım belki fikir verir.Hatta biraz tartışılmıştı bu konu 8 bitlik işlemci ile yapıldığından, diğer 16 ve 32 bitlik işlemcilere oranla %0.5 lik hata vardı.

Device=16F628A
Config INTRC_OSC_NOCLKOUT , WDT_OFF , PWRTE_ON , BODEN_OFF , LVP_OFF , CP_OFF, MCLRE_OFF

CMCON=%00000111
ALL_DIGITAL TRUE
Output PORTA
Output PORTB
Declare FLOAT_DISPLAY_TYPE LARGE
LCD_DTPIN PORTB.4
LCD_RSPIN PORTB.3
LCD_ENPIN PORTB.2
DelayMS 400
Dim X As Float
Dim Y As Float
Dim Z As Float
Dim Q As Float
Cls

BASLA:
Y=26897534
Z=789287.13
DelayMS 2
X=Y/Z
DelayMS 2
Q=X+Z
DelayMS 200
Print At 1,1, "X:", DEC6 X
Print At 2,1, "Q:", DEC6 Q
End
@ NEXYS2

orhanc

EX_FLOAT.C  dosyasını bir incele
i'm doing nothing... Giddy Up  http://www.drorhan.com

Erhan YILMAZ

Mikrodenetleyicilerde noktalı sayılarla işlemler yapmak için ieee 754 isimli standart belirlenmiştir.Asm ile noktalı sayılarla işlem yapmak büyük uğraş gerktirir.Bunun yerine microchipin hazır asm rutinleri var içerisinde noktalı sayılarla işlem asci koda çevirme gibi hazır rutinler mevcut.

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en010961
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en010982
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en010984
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en010987