sonunda yazdığım ds1820 kodlarını simule edecek bir şey buldum. sonuca bakılırsa hesaplama yönteminde ufak bir değişiklik yapmak gerekiyor. buna göre düzelttiğim kodları aşağıda yeniden veriyorum.
söz konusu programlar pic basic pro ile yazılmış olup en azından pbp 2.43 ve üzeri derleyiciler ile derlenmesi gerekir. genelde micro code studio ile birlikte kullanılan bu derleyicileri nette arayınca bulabilirsiniz. en son sürüm olarak 2.46 sı var sanırım.
bu arada bilgi olarak vereyim. ds1820 ile ds18s20 sensörleri aynı okuma programı ile çalışabilmektedir. yani biri diğerinin yerine olabilmektedir.
ete
Kod:
'değişkenlerin tanımlandığı bölüme
sayac var byte
kalan var byte
'ifadelerini ilave ediniz.
sensoroku:
owout comm_pin, 1, [$cc, $44] ' ısı değerini oku
bekle:
owın comm_pin, 4, [busy] ' busy değerini oku
ıf busy = 0 then bekle ' hala meşgulmü? , evet ise goto bekle..!
owout comm_pin, 1, [$cc, $be] ' scratchpad memory oku
owın comm_pin, 0, [ham.lowbyte, ham.hıghbyte, skip 4, kalan, sayac]
gosub hesapla
return
hesapla:
sign = "+"
ıf sıgn_bıtı = negat_ısı then
sign = "-"
ısı=((($ffff-ham+1)*50)-25)+ (((sayac - kalan) * 100) / sayac)
goto gec
endif
ısı = (((ham) * 50) - 25) + (((sayac - kalan) * 100) / sayac)
' ısı=ısı-25 'bana göre bu düzeltme yapılmalı ama verilen formül öyle demiyor
gec:
ısı2 = (ısı //100)/10
ısı1=ısı/100
return