Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

mcp3553 ölçüm

Başlatan mikro29, 14 Nisan 2017, 11:59:55

mikro29

Hayırlı günler,
MCP3553 ile 2.5V ve -2.5V ölçmeye çalışıyorum, lakin protonbasic gazabına uğruyorum. Protonbasic ondalıklı sayıları düzgün işleyemediği için sonuç yanlış çıkıyor.Onun için sayıları yuvarlamayı denedik ama yine sonuç problemli forumlarda da aradığımı bulamadım c dillerinde yazılmış kodlar var bana basic lazım yardımlarınızı bekliyorum. Gerçek ortamdada deniyorum aynı.
Protonbasic da yazdığımız kodlar

Dim SONUC As Float
Dim SONUC2 As Dword
Dim ILK As Byte
Dim ORT As Byte
Dim SON As Byte
Dim TOPLAM1 As Dword
Dim TOPLAM2 As Dword
Dim TOPLAM3 As Dword
Dim GEN As SDword
'SDWORD = -2147483648 ve +2147483647
'FLOAT  = -2147483646.999 ve +2147483646.999

' MCP3553 PİNLERİ
Symbol SDI = PORTA.0
Symbol SCK = PORTA.1
Symbol CS  = PORTA.7

' REF VOLTAJI = 2.500

BASLA:  
CS=0
   Input SDI 
    While SDI=1:Wend
    SHIn SDI,SCK,4,[SON,ORT,ILK] 
CS=1
    
TOPLAM1 = ILK.0 * 1 + ILK.1 * 2 + ILK.2 * 4 + ILK.3 * 8 + ILK.4 * 16 + ILK.5 * 32 + ILK.6 * 64 +ILK.7 * 128 '0 - 7 BİTLER
TOPLAM2 = ORT.0 * 256 + ORT.1 * 512 + ORT.2 * 1024 + ORT.3 * 2048 + ORT.4 * 4096 + ORT.5 * 8192 + ORT.6 * 16384 ORT.7 * 32768 ' 8 - 15 BİTLER
TOPLAM3 = SON.0 * 65536 + SON.1 * 131072 + SON.2 * 262144 + SON.3 * 524288 '+ SON.4 * 1048576' + SON.5 * 2097152 
GEN = TOPLAM1 + TOPLAM2 + TOPLAM3    

If SON.4 = 1  Then ' 21.BIT = FARK POZİTİF İSE  
    SONUC = (GEN-1048576)*10/2097151' * 10/2097151)'2462    '4194303=0.00000119209V = 0,0011 mV 
    HSerOut [Dec4 SONUC,"V",13,10]
        Else  
    SONUC = (GEN*10)/2097151'0.000002517)    '4194303=0.00000119209V = 0,0011 mV 
    HSerOut [Dec4 SONUC,"V",13,10]
EndIf 

DelayMS 500
GoTo BASLA
End





Maxim

proton böyle bir satırı kabul ediyormu?
TOPLAM1 = ILK.0 * 1 + ILK.1 * 2 + ILK.2 * 4 + ILK.3 * 8 + ILK.4 * 16 + ILK.5 * 32 + ILK.6 * 64 +ILK.7 * 128 '0 - 7 BİTLER

ferit06

TOPLAM1 = ILK.0 * 1 + ILK.1 * 2 + ILK.2 * 4 + ILK.3 * 8 + ILK.4 * 16 + ILK.5 * 32 + ILK.6 * 64 +ILK.7 * 128 '0 - 7 BİTLER
TOPLAM2 = ORT.0 * 256 + ORT.1 * 512 + ORT.2 * 1024 + ORT.3 * 2048 + ORT.4 * 4096 + ORT.5 * 8192 + ORT.6 * 16384 ORT.7 * 32768 ' 8 - 15 BİTLER
TOPLAM3 = SON.0 * 65536 + SON.1 * 131072 + SON.2 * 262144 + SON.3 * 524288 '+ SON.4 * 1048576' + SON.5 * 2097152
GEN = TOPLAM1 + TOPLAM2 + TOPLAM3   


kısmını
GEN.Byte0=ILK
GEN.Byte1=ORT
GEN.Byte2=SON


olarak kullanabilirsin.




mikro29

#ferit06 hocam yazdığınız şekilde olay çözüldü Allah razı olsun herkese çok teşekkür ederim
Alıntı Yap
GEN.Byte0=ILK
GEN.Byte1=ORT
GEN.Byte2=SON