aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Phillips <david@yeah.nah.nz>2020-12-20 23:21:25 +1300
committerDavid Phillips <david@yeah.nah.nz>2020-12-20 23:21:25 +1300
commit9f52d6764b66b0492b74daeafc37f622c7fc1100 (patch)
tree6ec3c50b2963f6fa2d5701b4468df996127751aa
parent75154ebdfbbfe7a04d21d910254058a757d2eef6 (diff)
downloadaltimeter-9f52d6764b66b0492b74daeafc37f622c7fc1100.tar.xz
Set GPIOs for profiling/debug
-rw-r--r--altimeter.c28
1 files changed, 25 insertions, 3 deletions
diff --git a/altimeter.c b/altimeter.c
index acaa95e..0aebbf7 100644
--- a/altimeter.c
+++ b/altimeter.c
@@ -20,20 +20,40 @@
# define WDT_PAT_MAYBE() do{wdt_reset();}while(0)
#endif
+#define DEBUG_ALL_VAL ((1 << 1) | (1 << 2) | (1 << 3) | (1 << 4) | (1 << 5) | (1 << 6))
+#define DEBUG_INIT do{DDRB |= DEBUG_ALL_VAL;}while(0)
+#define DEBUG_MARK_SET_ALL do{PORTB |= DEBUG_ALL_VAL;}while(0)
+#define DEBUG_MARK_1_SET do{PORTB |= 1 << 1;}while(0)
+#define DEBUG_MARK_1_CLEAR do{PORTB &= ~(1 << 1);}while(0)
+#define DEBUG_MARK_2_SET do{PORTB |= 1 << 3;}while(0)
+#define DEBUG_MARK_2_CLEAR do{PORTB &= ~(1 << 3);}while(0)
+#define DEBUG_MARK_3_SET do{PORTB |= 1 << 2;}while(0)
+#define DEBUG_MARK_3_CLEAR do{PORTB &= ~(1 << 2);}while(0)
+#define DEBUG_MARK_4_SET do{PORTB |= 1 << 6;}while(0)
+#define DEBUG_MARK_4_CLEAR do{PORTB &= ~(1 << 6);}while(0)
+#define DEBUG_MARK_5_SET do{PORTB |= 1 << 5;}while(0)
+#define DEBUG_MARK_5_CLEAR do{PORTB &= ~(1 << 5);}while(0)
+#define DEBUG_MARK_6_SET do{PORTB |= 1 << 4;}while(0)
+#define DEBUG_MARK_6_CLEAR do{PORTB &= ~(1 << 4);}while(0)
+
/* ISR for collecting and displaying pressure, altitude data etc */
ISR(TIMER1_COMPA_vect)
{
- PORTD ^= 1 << 5;
+ DEBUG_MARK_SET_ALL;
static volatile float setting = 1040.21; /* FIXME volatile for gdb hacks */
static float last_height = 0;
float pressure = 0;
float height_m = 0;
float rate_m_s;
char rate_sym;
+ DEBUG_MARK_1_CLEAR;
pressure = barometer_read();
+ DEBUG_MARK_2_CLEAR;
height_m = pressure_to_metres_asl(pressure, setting);
+ DEBUG_MARK_3_CLEAR;
rate_m_s = height_m - last_height;
last_height = height_m;
+ DEBUG_MARK_4_CLEAR;
if (rate_m_s < 0) {
rate_sym = C_DESC;
@@ -42,6 +62,7 @@ ISR(TIMER1_COMPA_vect)
} else {
rate_sym = C_ASC;
}
+ DEBUG_MARK_5_CLEAR;
char line[LCD_WIDTH+1];
/* line 1 */
@@ -69,6 +90,8 @@ ISR(TIMER1_COMPA_vect)
display_set_cursor(0, 3);
display_write(line);
+ DEBUG_MARK_6_CLEAR;
+
WDT_PAT_MAYBE();
}
@@ -78,8 +101,7 @@ int main(void)
display_init();
display_clear();
- DDRB |= 1 << 0;
- DDRD |= 1 << 5;
+ DEBUG_INIT;
/* Initialise timers for /1024 prescaler, 1 Hz comparator val */
TCCR1B |= (1 << CS10) | (1 << CS12) | (1 << WGM12);