Vielleicht kannst du ja damit was anfangen:
PortC,5 und6 sind die /CS der beiden MAX (ich hatte 2 in der Schaltung).Code:Procedure ReadAT; Var Error : Integer; JT : Word; // Chip-Temperatur B1,B2,B3,B4 : Byte; Dummy : Byte; Begin For Dummy:=0 to 1 do Excl(PortC,5+Dummy); SDelay(200); B1:=SPIInpByte1; B2:=SPIInpByte1; B3:=SPIInpByte1; B4:=SPIInpByte1; Error:=((256*Integer(B3))+Integer(B4)) and $0007; If Error>0 then ATError[Dummy]:=Error; else ATError[Dummy]:=0; EndIf; JT:=((Word(B3)*256)+Word(B4)) SHR 8; If (B1 and $80)=$80 then AT[Dummy]:=(-1*((((not((256*Integer(B1))+Integer(B2))) and $0FFF)+1) SHR 4))-JT+20; else AT[Dummy]:=(((256*Integer(B1))+Integer(B2)) SHR 4)-JT + 21; // Temperatur-Korrektur EndIf; Incl(PortC,5+Dummy); EndFor; End ReadAT;
Harry







Zitieren


Lesezeichen