Merge branch 'micropeak-1.1'
authorKeith Packard <keithp@keithp.com>
Mon, 10 Dec 2012 02:33:31 +0000 (18:33 -0800)
committerKeith Packard <keithp@keithp.com>
Mon, 10 Dec 2012 02:33:31 +0000 (18:33 -0800)
src/core/ao_convert_pa.c
src/micropeak/ao_pins.h
src/micropeak/ao_report_tiny.c

index 55fe6e7da0e3a0ad5c4110b41f2722fc756bbc87..fe6e0ef699b803de2b6109e088ee638ac1be0431 100644 (file)
@@ -43,13 +43,13 @@ ao_pa_to_altitude(int32_t pa)
 
        if (pa < 0)
                pa = 0;
-       if (pa > 120000)
-               pa = 120000;
+       if (pa > 120000L)
+               pa = 120000L;
        o = pa >> ALT_SHIFT;
        part = pa & ALT_MASK;
 
-       low = (alt_t) FETCH_ALT(o) * (ALT_SCALE - part);
-       high = (alt_t) FETCH_ALT(o+1) * part + (ALT_SCALE >> 1);
+       low = (int32_t) FETCH_ALT(o) * (ALT_SCALE - part);
+       high = (int32_t) FETCH_ALT(o+1) * part + (ALT_SCALE >> 1);
        return (low + high) >> ALT_SHIFT;
 }
 
index 257b8694bc3c6301ecea048660dd3c1602e90df0..63e9cb1b26663ce0259d2134003d8fa334b54ae0 100644 (file)
@@ -57,8 +57,9 @@
 #define I2C_PIN_SDA            PINB0
 
 #define AO_CONST_ATTRIB                PROGMEM
+typedef int32_t alt_t;
 #define FETCH_ALT(o)           ((alt_t) pgm_read_dword(&altitude_table[o]))
 
-#define AO_ALT_VALUE(x)                ((x) * 10)
+#define AO_ALT_VALUE(x)                ((x) * (alt_t) 10)
 
 #endif /* _AO_PINS_H_ */
index 109af1ed05050f31f2af72bdc3d590587c1f7a1b..bdcc131eacdc2f783e2d4c880f8051088f35d5a8 100644 (file)
@@ -38,8 +38,8 @@ ao_report_digit(uint8_t digit) __reentrant
 void
 ao_report_altitude(void)
 {
-       __pdata int16_t agl = ao_max_height;
-       __xdata uint8_t digits[10];
+       __pdata alt_t   agl = ao_max_height;
+       static __xdata uint8_t  digits[11];
        __pdata uint8_t ndigits, i;
 
        if (agl < 0)