PICBASIC ILE NEGATIF SAYILAR

Başlatan oyhan, 31 Ekim 2004, 22:41:39

oyhan

ARKADAŞLAR
PIC BASICDE NEGATIF SAYI DESTEĞI YOKMUŞ VE BUNU DS1820 ILE KULLANMIS OLDUĞUM KODUN NETICESINDE FARK ATTİM.
SENSORÜ SOĞUTTUM VE NEGATIF DEĞERE GELİNCE 32767 GİBİ BİR DEĞER YAZIYOR LCD DE  YANİ NEGATİF SAYILAR İÇİN AYRICA KOD YAZMAMIZ GEREKİYORMUŞ BU KONUDA BİR ÇALIŞMASI OLAN VARMI SAYGILARIMLA...
BİRLİKTEN KUVVET DOĞAR:

Veli B.

LM35cz için kullandığım bir yçntem var ama analog sinyal için.Sanırım dijital sinyale gayte kolay bir şekilde uygulayabilirsin.0 seviyesini 50 ye eşitliyorum.Yani ekrana göndereceğim bilgide data-50 olarak gidiyor.Eksi değerleri göstermek içinse 50-data diyorum.Sonuçta
-30  (50-20)
-20  (50-30)
-10  (50-40)
0    (50)
10   (60-50)
20   (70-50)
30   (80-50)
gibi deşerleri rahat bir şekilde gçsterebiliyorum ve işleme sokabiliyorum.

oyhan

Arkadaşlar
Ds1820 sensor ile bu şekilde bir uygulama yapan arkadaş varmı.
Yani negatif değerlikteki ısıları lcd ye nasıl yazdırabılırız.
Saygılarımla...
BİRLİKTEN KUVVET DOĞAR:

baba

ölçülen negatif sayının tamlayanını (comlement) alıp bir artırırsanız pozitif karşılığını alırsınız arkadaşlar.


comf  value,f
incf     value,f



gibi
ÖĞRENDİKÇE    CAHİLLİĞİM       ARTIYOR.

tnr

örnekle açıklar mısın nasıl olacak :?:      :?

oyhan

32767 GİBİ bir değeri bahsettiğim gibi izledim. (negatif bir sayı)
bunu basic de nasıl negatif mesela -1 veya neyse nasıl gösteririm bu konuda bir örnek verebilirmisiniz acaba..
tşk...
BİRLİKTEN KUVVET DOĞAR:

fsan

if (sayi > a) and (sayi < b) then LCDOUT "-", dec sayi, "C"

mrt2525

sayiyi lcd de göstermek icin dec diye bir komut kullaniyoruz. eger  sdec komutunu kullanirsak lcd ekranda gördügümüz sayi negatif olur.

baba

aşağıdaki kısayollarda güzel uygulamalar var.hem lcd kullanımı hem de 1-wire hakkında yararlı olacaktır.inceleyin lütfen.

http://www.rentron.com/PicBasic/one-wire3.htm

http://www.rentron.com/PicBasic/one-wire2.htm

http://www.rentron.com/PicBasic/PBP1-wire.htm
ÖĞRENDİKÇE    CAHİLLİĞİM       ARTIYOR.

ftsahin

if sayi<1000 then lcdout $fe,1,#sayi
if sayi>32000 then
 sayi=32768-sayi
 lcdout $fe,1,"-",#sayi
endif

Bu da bir çözüm olabilir. Kullandığım 1000 rakamı ısı entegresinden gelen rakamın max. değerine göre değişebilir. Ben her ihtimale karşı bu değeri kullandım. Eğer sayı 32000'den büyükse kesin olarak bu değer negatiftir. Bu yüzden çekinmeden bu yöntemi uygulayabilirsin.Kolay gelsin.

oyhan

Hemen deneyeceğim ve çok mantıklı sanırım aynen bahsettiğiniz gibi denedikten sonra buraya yazarım. TŞK..
BİRLİKTEN KUVVET DOĞAR: