TempIa = (s32)(Dl645FrontTmp.UI[0]/(Dl645FirmPara.IRmsConst)); TempIb = (s32)(Dl645FrontTmp.UI[1]/(Dl645FirmPara.IRmsConst)); TempIc = (s32)(Dl645FrontTmp.UI[2]/(Dl645FirmPara.IRmsConst)); Dl645Front.PubData.I[0] = fnDFConver_Bcd32To32(TempIa); Dl645Front.PubData.I[1] = fnDFConver_Bcd32To32(TempIb); Dl645Front.PubData.I[2] = fnDFConver_Bcd32To32(TempIc); Dl645Front.PubData.I[3] = fnDFConver_Bcd32To32((s32)(Dl645FrontTmp.UI[3]/(Dl645FirmPara.IRmsConst))); if(Dl645FrontTmp.PDirect&0x0001) Dl645Front.PubData.I[0] |= 0x80000000; if(Dl645FrontTmp.PDirect&0x0002) Dl645Front.PubData.I[1] |= 0x80000000; if(Dl645FrontTmp.PDirect&0x0004) Dl645Front.PubData.I[2] |= 0x80000000; RN7302计量芯片的代码解析
时间: 2024-04-03 12:33:39 浏览: 6
这段代码是针对RN7302计量芯片进行数据处理和转换的。首先将三相电流数据从BCD码转换成32位有符号整型数,并将其除以IRmsConst得到实际电流值。然后分别将三相电流和零线电流存储到Dl645Front.PubData.I数组中,并对其中三相电流进行符号位处理。最后,将电流数据存储到Dl645Front中。