projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos: Add debug check for irq block when editing task queues
[fw/altos]
/
src
/
kernel
/
ao_convert_pa.c
diff --git
a/src/kernel/ao_convert_pa.c
b/src/kernel/ao_convert_pa.c
index fe6e0ef699b803de2b6109e088ee638ac1be0431..410815b68bcdabac38d417a75d70910b0de91578 100644
(file)
--- a/
src/kernel/ao_convert_pa.c
+++ b/
src/kernel/ao_convert_pa.c
@@
-24,7
+24,11
@@
#endif
static const alt_t altitude_table[] AO_CONST_ATTRIB = {
#endif
static const alt_t altitude_table[] AO_CONST_ATTRIB = {
+#if AO_SMALL_ALTITUDE_TABLE
+#include "altitude-pa-small.h"
+#else
#include "altitude-pa.h"
#include "altitude-pa.h"
+#endif
};
#ifndef FETCH_ALT
};
#ifndef FETCH_ALT
@@
-35,11
+39,11
@@
static const alt_t altitude_table[] AO_CONST_ATTRIB = {
#define ALT_MASK (ALT_SCALE - 1)
alt_t
#define ALT_MASK (ALT_SCALE - 1)
alt_t
-ao_pa_to_altitude(
int32
_t pa)
+ao_pa_to_altitude(
pres
_t pa)
{
int16_t o;
int16_t part;
{
int16_t o;
int16_t part;
-
int32
_t low, high;
+
alt
_t low, high;
if (pa < 0)
pa = 0;
if (pa < 0)
pa = 0;
@@
-48,16
+52,16
@@
ao_pa_to_altitude(int32_t pa)
o = pa >> ALT_SHIFT;
part = pa & ALT_MASK;
o = pa >> ALT_SHIFT;
part = pa & ALT_MASK;
- low = (
int32
_t) FETCH_ALT(o) * (ALT_SCALE - part);
- high = (
int32
_t) FETCH_ALT(o+1) * part + (ALT_SCALE >> 1);
+ low = (
alt
_t) FETCH_ALT(o) * (ALT_SCALE - part);
+ high = (
alt
_t) FETCH_ALT(o+1) * part + (ALT_SCALE >> 1);
return (low + high) >> ALT_SHIFT;
}
#ifdef AO_CONVERT_TEST
return (low + high) >> ALT_SHIFT;
}
#ifdef AO_CONVERT_TEST
-
int32
_t
-ao_altitude_to_pa(
int32
_t alt)
+
pres
_t
+ao_altitude_to_pa(
alt
_t alt)
{
{
-
int32_t
span, sub_span;
+
alt_t
span, sub_span;
uint16_t l, h, m;
int32_t pa;
uint16_t l, h, m;
int32_t pa;
@@
-72,7
+76,7
@@
ao_altitude_to_pa(int32_t alt)
}
span = altitude_table[l] - altitude_table[h];
sub_span = altitude_table[l] - alt;
}
span = altitude_table[l] - altitude_table[h];
sub_span = altitude_table[l] - alt;
- pa = ((((
int32_t) l * (span - sub_span) + (int32
_t) h * sub_span) << ALT_SHIFT) + (span >> 1)) / span;
+ pa = ((((
alt_t) l * (span - sub_span) + (alt
_t) h * sub_span) << ALT_SHIFT) + (span >> 1)) / span;
if (pa > 120000)
pa = 120000;
if (pa < 0)
if (pa > 120000)
pa = 120000;
if (pa < 0)