lcdout ta sorun

Başlatan wonder, 30 Aralık 2006, 21:52:51

wonder

arkadaşlar ds1820 ile sıcaklı ölçerken sorun yaşıyorum söyleki
ekrana yazdıran komut:
lcdout $fe,1,dec(temp>>1),".",dec(temp.0*5),223,"C"
dereceyi 184.5ºC  olarak gösteriyor
ama 18.4ºC  yazması lazım
burda
dec(temp>>1),".",dec(temp.0*5)
kısmını ne iş yaptığını söyleyebilirmisiniz diğerlerini biliyorum

ete

dec (temp>>1)
komutu temp değerini 1 bit sağa kaydırıp desimal olarak ekrana verir. Bir bit sağa kaydırmakdemek temp değerini 2 ye bölmek demektir.
Diğer komut temp değişkeninin 5. bitdeğerini 5 ile çarpar.Bit bir ise sonuç 5, bit sıfır ise sonuç sıfır çıkar.
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

wonder

Alıntı yapılan: "ete"dec (temp>>1)
komutu temp değerini 1 bit sağa kaydırıp desimal olarak ekrana verir. Bir bit sağa kaydırmakdemek temp değerini 2 ye bölmek demektir.
Diğer komut temp değişkeninin 5. bitdeğerini 5 ile çarpar.Bit bir ise sonuç 5, bit sıfır ise sonuç sıfır çıkar.
Ete
tşk ederim sayın ete
sorun 18.45 yerine 184.5 yazmasıydı  bunu başka bi yerde daha mantıklı yapmışlar daha hassas çalışıyor
 TempC = DIV32 10    
 TempC = (temp & $0FF0) >> 4
 Float = ((temp.Lowbyte & $0F) * 625)
 lcdout $fe,1,DEC TempC,".",DEC Float,223,"C "
 LCDOUT $FE,$C0,IBIN16 temp