From 85535ce68f1b55150a59eb87a54074c5f49ab585 Mon Sep 17 00:00:00 2001
From: "ucart@co3050-12" <dawehr@iastate.edu>
Date: Sat, 21 Jan 2017 17:00:20 -0600
Subject: [PATCH] Added timing functionality to timer.c

---
 quad/scripts/test_uart_comm.py                       | 11 +++++++++--
 quad/sw/modular_quad_pid/src/initialize_components.c | 11 ++++++-----
 quad/sw/modular_quad_pid/src/timer.c                 |  4 ++++
 quad/sw/modular_quad_pid/src/timer.h                 |  2 ++
 4 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/quad/scripts/test_uart_comm.py b/quad/scripts/test_uart_comm.py
index 1a28e3ba6..324f73b1f 100755
--- a/quad/scripts/test_uart_comm.py
+++ b/quad/scripts/test_uart_comm.py
@@ -1,6 +1,7 @@
 #!/usr/bin/python
 
 import sys
+import time
 
 print(sys.version_info)
 import serial
@@ -44,7 +45,13 @@ def query_received(ser):
 
 if __name__ == '__main__':
     with serial.Serial('/dev/ttyUSB0', 921600, timeout=5) as ser:
-        ser.write(create_test_packet(8))
+        ser.reset_input_buffer()
+        ser.write(create_test_packet(40))
+        time.sleep(0.05)
+        #while ser.in_waiting != 0:
+        #    resp = read_packet(ser)
+        #    elapsed = int.from_bytes(resp, byteorder='little')
+        #    print(f"Took {elapsed} cycles, {elapsed / 100} us")
         ser.flush()
-        print(query_received(ser))
+        #print(query_received(ser))
 
diff --git a/quad/sw/modular_quad_pid/src/initialize_components.c b/quad/sw/modular_quad_pid/src/initialize_components.c
index fac31e173..e00a27b8c 100644
--- a/quad/sw/modular_quad_pid/src/initialize_components.c
+++ b/quad/sw/modular_quad_pid/src/initialize_components.c
@@ -56,6 +56,12 @@ int initializeAllComponents(user_input_t * user_input_struct, log_t * log_struct
 	// Xilinx given initialization
 	init_platform();
 
+
+	// Initialize loop timers
+	if (timer_init()) {
+		return -1;
+	}
+
 	// Initialize UART0 (Bluetooth)
 	if (initUartComms()) {
 		return -1;
@@ -69,11 +75,6 @@ int initializeAllComponents(user_input_t * user_input_struct, log_t * log_struct
 	// Initialize PWM Recorders and Motor outputs
 	pwm_init();
 
-	// Initialize loop timers
-	if (timer_init()) {
-		return -1;
-	}
-
 	//manual flight mode
 	user_defined_struct->flight_mode = MANUAL_FLIGHT_MODE;
 
diff --git a/quad/sw/modular_quad_pid/src/timer.c b/quad/sw/modular_quad_pid/src/timer.c
index 7d5f3b11b..2c39ed1a7 100644
--- a/quad/sw/modular_quad_pid/src/timer.c
+++ b/quad/sw/modular_quad_pid/src/timer.c
@@ -64,3 +64,7 @@ int timer_end_loop(log_t *log_struct)
 
 	return 0;
 }
+
+u32 timer_get_count() {
+	return XTmrCtr_GetValue(&axi_timer, 0);
+}
diff --git a/quad/sw/modular_quad_pid/src/timer.h b/quad/sw/modular_quad_pid/src/timer.h
index dbd719027..64e067e9a 100644
--- a/quad/sw/modular_quad_pid/src/timer.h
+++ b/quad/sw/modular_quad_pid/src/timer.h
@@ -53,4 +53,6 @@ int timer_start_loop();
  */
 int timer_end_loop(log_t *log_struct);
 
+u32 timer_get_count();
+
 #endif /* TIMER_H_ */
-- 
GitLab