summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2011-10-11 23:28:02 -0600
committerKeith Packard <keithp@keithp.com>2011-10-11 23:28:02 -0600
commitbadda0d910c56135401dce9adc9e6abebdba2ad7 (patch)
treedc586762e7a12faa4240cf82f99691c04d08f57f /src/core
parent47c2c0b79dc516d2566ae149605b7d70ef2dca98 (diff)
altos: Split out arch-specific bits of LCD driver
The arch-specific section just puts a single nibble to the device. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/core')
-rw-r--r--src/core/ao.h28
-rw-r--r--src/core/ao_monitor.c13
2 files changed, 39 insertions, 2 deletions
diff --git a/src/core/ao.h b/src/core/ao.h
index 94526bc3..c800f1fc 100644
--- a/src/core/ao.h
+++ b/src/core/ao.h
@@ -1668,8 +1668,36 @@ ao_companion_init(void);
/* ao_lcd.c */
void
+ao_lcd_putchar(uint8_t data);
+
+void
+ao_lcd_putstring(char *string);
+
+void
+ao_lcd_contrast_set(uint8_t contrast);
+
+void
+ao_lcd_clear(void);
+
+#define AO_LCD_ADDR(row,col) ((row << 6) | (col))
+
+void
+ao_lcd_goto(uint8_t addr);
+
+void
+ao_lcd_start(void);
+
+void
ao_lcd_init(void);
+/* ao_lcd_port.c */
+
+void
+ao_lcd_port_put_nibble(uint8_t rs, uint8_t data);
+
+void
+ao_lcd_port_init(void);
+
/* ao_aes.c */
__xdata uint8_t ao_aes_mutex;
diff --git a/src/core/ao_monitor.c b/src/core/ao_monitor.c
index 1a8bb52a..5a6f61dd 100644
--- a/src/core/ao_monitor.c
+++ b/src/core/ao_monitor.c
@@ -22,6 +22,10 @@
#error Must define HAS_MONITOR to 1
#endif
+#ifndef LEGACY_MONITOR
+#error Must define LEGACY_MONITOR
+#endif
+
__data uint8_t ao_monitoring;
__pdata uint8_t ao_monitor_led;
@@ -39,12 +43,14 @@ ao_monitor_get(void)
case 0:
ao_sleep(DATA_TO_XDATA(&ao_monitoring));
continue;
+#if LEGACY_MONITOR
case AO_MONITORING_ORIG:
size = sizeof (struct ao_telemetry_orig_recv);
break;
case AO_MONITORING_TINY:
size = sizeof (struct ao_telemetry_tiny_recv);
break;
+#endif
default:
if (ao_monitoring > AO_MAX_TELEMETRY)
ao_monitoring = AO_MAX_TELEMETRY;
@@ -70,12 +76,13 @@ ao_monitor_blink(void)
void
ao_monitor_put(void)
{
+#if LEGACY_MONITOR
__xdata char callsign[AO_MAX_CALLSIGN+1];
-
+ int16_t rssi;
+#endif
uint8_t ao_monitor_tail;
uint8_t state;
uint8_t sum, byte;
- int16_t rssi;
__xdata union ao_monitor *m;
#define recv_raw ((m->raw))
@@ -89,6 +96,7 @@ ao_monitor_put(void)
m = &ao_monitor_ring[ao_monitor_tail];
ao_monitor_tail = ao_monitor_ring_next(ao_monitor_tail);
switch (ao_monitoring) {
+#if LEGACY_MONITOR
case AO_MONITORING_ORIG:
state = recv_orig.telemetry_orig.flight_state;
@@ -231,6 +239,7 @@ ao_monitor_put(void)
printf("CRC INVALID RSSI %3d\n", rssi);
}
break;
+#endif /* LEGACY_MONITOR */
default:
printf ("TELEM %02x", ao_monitoring + 2);
sum = 0x5a;