Jag har nyligen gjort betydande framsteg i min förståelse av ARINC429 tack vare en användare på den här sidan, men jag kan ha förvirrat mig lite efter att ha läst mer om det. Vilken hjälp som helst på någon av följande frågor är mycket uppskattad.
Upplösningar i A429-specifikationen är ungefärliga, så beräkna dem själv.
Upplösning = Räckvidd / (2 ^ signifikanta bitar)
Här är ett sätt att göra det: Ladda dina 32 bitar i ett signerat 32-bitars heltal. Växla till vänster 3 så att teckenbiten nu är i bit 32. Skift höger (32 signifikanta bitar) -1 för att bilda ett 2: e komplement "fast punkt" -nummer. Konvertera till float och multiplicera med upplösningen. Gjort.
Observera att när ett signerat heltal används används teckenförhöjningen på skiftet till höger.
"Fix-point" är också känd som "skalad" i vissa cirklar. Det är en metod att lagra och utföra matte på ett riktigt tal med ett heltal istället för att använda en flottör. Upplösningen är vikten av en lsb-bit. Upplösningen dokumenteras någonstans och multipliceras med heltalet för att få floaten när felsökning och sådant, men maskinkoden "vet inte" att du tycker om det som en flotta.
Intervallet är nyckeln till fastpunktsantal eftersom det begränsar värdet. Antalet signifikanta bitar påverkar noggrannheten. Du kan använda fel antal signifikanta bitar och får fortfarande ett "användbart" nummer men med en eventuell förlust av noggrannhet om du väljer en som är för liten. Akta dig för att oanvända lågbitar ibland återställs för statusflaggor etc., så förvänta dig inte att dessa alltid är noll. Specifikationerna beskriver också en idealisk standard, men i den verkliga världen tas friheter med etiketter som återställs efter behov.
På grund av sättet 2 kompletterande heltal fungerar det maximala positiva värdet möjligt att vara intervallet minus upplösningen. Till exempel kan du få exakt -180 grader men inte riktigt +180 grader.
Läs andra frågor om taggar arinc-429 Kärlek och kompatibilitet Skor Gear 12 Stjärntecken Grunderna