ADC WORD tipi değişken Problemi

Başlatan solidus, 18 Temmuz 2009, 13:49:03

solidus

HAM             VAR WORD
LTR              VAR BYTE
KUSUR_LTR  VAR BYTE
TEMP            VAR WORD 'TOPLAM LİTRE DEĞİŞKENİ
FIYAT      VAR WORD
YTL        VAR WORD
KUSUR_YTL  VAR WORD

ADCIN 0,HAM
TEMP=(HAM+1)*/100 :KUSUR_LTR=TEMP//10 :LTR=TEMP/8
  if HAM>=50 then 
    HAM=HAM-50 
  else 
    HAM=0
  endif
LCDOUT $FE,$80,"MIKTAR:",#LTR,",",#KUSUR_LTR, " LTR    "
      YTL =  (LTR*fiyat)+(KUSUR_LTR*FIYAT)/10

lcdout $fe,$c0,"TUTAR :",DEC YTL," YTL     "
PAUSE 100

Bu kodda adc den okumayı net olarak yapabiliyorum ama konu fiyat yazdırmaya gelince YTL değişkeni word tipi olduğundan birim fiyatı 1400 olan malzemenin 45lt fiyatı 63000 gözlemlenirken 47 lt fiyatı 264 gözlemleniyor. Resimleri eklemeye çalışıyorum.. Kodda nasıl bi değişiklik yapmam gerekiyor acaba ?



Kimine göre kralım kimine göre yalanım… Herkes rahatına baksın, ben adamına göre adamım..

tyildizak

selamlar,

1. YTL yok artık,  TL olmalı

2. Yapmak istediğinin birsürü yolu var, ama ben olsam  Proton'a geçerdim hemen,  orada  yanılmıyorsam DWORD kullanılabiliyordu. Aynı kodları değişiklik yapmadan proton basic ile derleyebilirsin.

Maxim

resimler çok küçük,
tıkladıktan sonrada küçük.

normalde size dword değişkeni lazım ama picbasicte olmadığından kullanamazsınız, proton+ derleyici olsa kullanırdınız ,
neyse kısacası değişkenin limitini aşıyorsunuz (max 65535) .

şöyle olamazmı ?
TL yi 1400 değilde 140 ile çarpın ..
en sonunda lcd ekranda son haneye bir sıfır yazdırın ?

solidus

Dediğiniz gibi hemen protonda derlemeyi deneyeyim..Sonucu paylaşırım..
Kimine göre kralım kimine göre yalanım… Herkes rahatına baksın, ben adamına göre adamım..

solidus

YTL =  LTR*FIYAT+(KUSUR_LTR*FIYAT)/10

kodların bu satırında
"Cannot compile an expression containing more than 3 operands when the assignment is aDWORD or FLOAT" uyarısı geliyor.. Bizim satırda 4 operand var.Ama azaltamıyorum. Ne yapabilirim ?
Kimine göre kralım kimine göre yalanım… Herkes rahatına baksın, ben adamına göre adamım..

tyildizak

i var dword
ii var dword

i =  LTR*FIYAT

ii =(KUSUR_LTR*FIYAT)/10

ytl = i + ii


şeklinde olabilir

aslında maxiboost'un çözümü  doğru olan, ama bu vesileyle proton'a geçmen faydalı olabilir ilerisi için:)

solidus

aynı şekilde düşünerek biraz önce yaptım hocam. fiyatı küsüratlı yazdırmaya çalışıyorum şimdi de. başaramazsam yardım isterim
Kimine göre kralım kimine göre yalanım… Herkes rahatına baksın, ben adamına göre adamım..