Andrew Tridgell
e4e052ff91
AP_Declination: save some more memory by putting the declination keys in progmem
...
there was a comment saying this was too slow, but it actually costs
about 30 usec extra, which is trivial given the full auto declination
call costs 680 usec and its only called once per boot
2012-03-30 14:25:27 +11:00
Andrew Tridgell
01c4cde14f
AP_Declination: fixed build under SITL
2012-03-30 14:25:27 +11:00
Adam M Rivera
cff189e911
AP_Declination: Update LUT based on the changes that I made in the LUT generation code. This LUT is the final version that has no truncation.
2012-03-30 14:25:26 +11:00
Adam M Rivera
380b9ece44
AP_Declination: Updated comments to reflect new LUT size.
2012-03-30 14:25:06 +11:00
Adam M Rivera
c04e074c89
AP_Declination: Removed trailing zero deltas as they have no impact on the final value and only take up extra bytes.
2012-03-30 14:21:58 +11:00
Adam M Rivera
662f11f801
AP_Declination: Updated compressed lookup value table. Located 9 more failure points due to truncation on the packed LUT.
2012-03-30 14:21:58 +11:00
Adam M Rivera
0178906389
AP_Declination: Found 7 of the 22 failure points and fixed them. The issue with those 7 was the way I originally packed the value array. The last delta values on some rows were getting truncated. The new number of failures is down to 15 - WIP.
2012-03-30 14:21:58 +11:00
Adam M Rivera
64c236800c
AP_Declination: Moved check for y index of zero to after the y index is properly transformed.
2012-03-30 14:21:58 +11:00
Adam M Rivera
e99d26cfa3
AP_Declination: The exception signs unpacking logic was incorrect. I was shifting a 1 value left y%8 which would have needed a the signs to be packed right to left. My packed signs byte was packed left to right (left most being the 0 position) so I needed to reverse the shifting.
2012-03-30 14:21:58 +11:00
Adam M Rivera
d9c9e0e608
AP_Declination: In order for the bitwise & operation to work, negative signs need to be represented by 1s instead of 0s. Changed so that negative signs are represented by a 1 in the packed signs array. Updated lookup logic to reflect this change.
2012-03-30 14:21:58 +11:00
Adam M Rivera
8b1c383f97
AP_Declination: Updated packed exception signs array. I had the signs packed incorrectly.
2012-03-30 14:21:57 +11:00
Adam M Rivera
63ce400f77
AP_Declination: Moved rows with large spikes in delta to their own unsigned exception rows. The signs are in a separate packed array.
2012-03-30 14:21:57 +11:00
Adam M Rivera
782c1aaaa3
AP_Declination: Implemented Delta Encoding and Run-Length Encoding. Added method to traverse the compressed array and return the lookup value based on the same lat_index/lon_index that was used before.
2012-03-30 14:21:57 +11:00
Adam M Rivera
9888a4730f
AP_Declination: Changed PROGMEM read function to pgm_read_word_far to support the int16_t datatype.
2012-03-30 14:21:57 +11:00
Adam M Rivera
d883bdf75e
AP_Declination: Changed datatype to int16_t to support the -90 <-> 90 latitude range.
2012-03-30 14:21:57 +11:00
Adam M Rivera
719636d00c
AP_Declination: Reduced the size of the lookup table to support -75 <-> 70 latitude range. This allows the datatype to remain int8_t.
2012-03-30 14:21:57 +11:00
Andrew Tridgell
b4d69ef473
AP_Declination: fixed usage of headers
2012-03-11 20:59:47 +11:00
Adam M Rivera
ad3a20b6a3
AP_Declination: Updated comment.
...
Signed-off-by: Andrew Tridgell <tridge@samba.org>
2012-03-11 20:59:47 +11:00
Adam M Rivera
94d1c48544
AP_Declination: Increased range of supported latitude coordinates.
...
Fixed incorrect type usage to save stack space.
Signed-off-by: Andrew Tridgell <tridge@samba.org>
2012-03-11 20:59:47 +11:00
Adam M Rivera
3f28184cb0
Added AP_Declination library. It contains the lookup table (lat/lng -> declination) as well as a method that performs the lookup.
...
Signed-off-by: Andrew Tridgell <tridge@samba.org>
2012-03-11 20:59:47 +11:00