|
本帖最后由 lqzhang03 于 2022-12-5 13:34 编辑
各位老大请指教!
一直学习washu老大的Voltgen程序,是双AD5541,REF2.5V,放大5倍的那个,设置电压那个子程序看不懂,程序如下:
Function SetVoltage(fVoltage As Float) As Byte
Local Vsetm As Word ' The Master DAC Setting Return
Local Vsets As Word ' The Slave DAC Setting Return
Local bMSB As Byte
Local bLSB As Byte
' the addsch VOut = Gain * (Vmaster * R2 +Vslave * R1) / (R1+R2),
' Fullscale of the Vm and Vs all = 2.5V, R1 = 470 ohm, R2 = 1M ohm, Gain= 5
fVtrn = fVoltage
fVtrn = fVtrn / fDACGain
fVset = fVtrn
' Get theMasteDAC Voltage Setting Value, Vm=Vo*(R1+R2)/R2
fVtrn = fVtrn * (fMResistance + fSResistance) /fSResistance
fVtrn = fVtrn * 65535 * 1000000 / fDACReference
Vsetm = fVtrn
bMSB = Msb(Vsetm)
bLSB = Vsetm - bMSB * 256
WriteDAC(bMSB,bLSB,1)
' Get the SlaveDAC Voltage Setting Value,Vs=[Vo*(R1+R2)-Vm*R2]/R1
fVtrn = Vsetm * fDACReference / 65535 / 1000000
fVtrn = (fVset * (fMResistance + fSResistance) -fVtrn * fSResistance) / fMResistance
fVtrn = fVtrn * 65535 * 1000000 / fDACReference
Vsets = fVtrn
bMSB = Msb(Vsets)
bLSB = Vsets - bMSB * 256
WriteDAC(bMSB,bLSB,2)
Return 0
End Function
按照红字的Vm和Vs的公式,Vs是一直为0吗???还是我理解的错了!
各位老大请指教!谢谢。
|
|