From 247371cad46838b2f97d0271218e23443794d1bd Mon Sep 17 00:00:00 2001
From: Brendan Bartels <bbartels@iastate.edu>
Date: Tue, 14 Mar 2017 20:00:26 -0500
Subject: [PATCH] wip: update PWM output test

---
 quad/src/quad_app/send_actuator_commands.c      |  1 +
 .../src/hw_impl_zybo_pwm_output.c               |  8 +++++---
 .../modular_quad_pid/src/hw_impl_zybo_tests.c   | 17 +++++++----------
 quad/xsdk_workspace/modular_quad_pid/src/main.c |  4 ++--
 4 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/quad/src/quad_app/send_actuator_commands.c b/quad/src/quad_app/send_actuator_commands.c
index efc4e44f7..c361e74db 100644
--- a/quad/src/quad_app/send_actuator_commands.c
+++ b/quad/src/quad_app/send_actuator_commands.c
@@ -11,6 +11,7 @@
 int send_actuator_commands(struct PWMOutputDriver *pwm_outputs, log_t* log_struct, actuator_command_t* actuator_command_struct) {
   int i;
   // write the PWMs to the motors
+
   for (i = 0; i < 4; i++) {
     pwm_outputs->write(pwm_outputs, i, actuator_command_struct->pwms[i]);
   }
diff --git a/quad/xsdk_workspace/modular_quad_pid/src/hw_impl_zybo_pwm_output.c b/quad/xsdk_workspace/modular_quad_pid/src/hw_impl_zybo_pwm_output.c
index 3d1b6e19c..3dd09e543 100644
--- a/quad/xsdk_workspace/modular_quad_pid/src/hw_impl_zybo_pwm_output.c
+++ b/quad/xsdk_workspace/modular_quad_pid/src/hw_impl_zybo_pwm_output.c
@@ -1,8 +1,10 @@
 #include "hw_impl_zybo.h"
 
-#define THROTTLE_PULSE_WIDTH_LOW 100000 // 1us
-#define THROTTLE_PULSE_WIDTH_HIGH 200000 // 2us
-#define PERIOD_WIDTH 222222 // 100000000 ns / 450
+#define SYS_CLOCK_RATE 100000000 // ticks per second
+#define FREQUENCY 450
+#define PERIOD_WIDTH SYS_CLOCK_RATE/FREQUENCY
+#define THROTTLE_PULSE_WIDTH_LOW SYS_CLOCK_RATE/1000 // 1 ms
+#define THROTTLE_PULSE_WIDTH_HIGH SYS_CLOCK_RATE/500 // 2 ms
 #define PULSE_WIDTH_ADDR_OFFSET 1
 
 struct PWMOutputDriverState {
diff --git a/quad/xsdk_workspace/modular_quad_pid/src/hw_impl_zybo_tests.c b/quad/xsdk_workspace/modular_quad_pid/src/hw_impl_zybo_tests.c
index 530c5afe0..cf36cb0af 100644
--- a/quad/xsdk_workspace/modular_quad_pid/src/hw_impl_zybo_tests.c
+++ b/quad/xsdk_workspace/modular_quad_pid/src/hw_impl_zybo_tests.c
@@ -117,17 +117,14 @@ int test_zybo_pwm_outputs() {
   struct SystemDriver sys = create_zybo_system();
   sys.reset(&sys);
 
-  unsigned long pwms[4];
-  pwms[0] = 100000;
-  pwms[1] = 100000;
-  pwms[2] = 100000;
-  pwms[3] = 100000;
-  int n = 0;
   while (1) {
-    int i;
-    for (i = 0; i < 4; i += 1) {
-      pwm_outputs.write(&pwm_outputs, i, pwms[i] + n++);
-      sys.sleep(&sys, 50);
+    int j;
+    for (j = 100000; j < 200000; j += 1) {
+      int i;
+      for (i = 0; i < 4; i += 1) {
+        pwm_outputs.write(&pwm_outputs, i, j);
+        sys.sleep(&sys, 50);
+      }
     }
     continue;
   }
diff --git a/quad/xsdk_workspace/modular_quad_pid/src/main.c b/quad/xsdk_workspace/modular_quad_pid/src/main.c
index 03612577d..fe31f0fb6 100644
--- a/quad/xsdk_workspace/modular_quad_pid/src/main.c
+++ b/quad/xsdk_workspace/modular_quad_pid/src/main.c
@@ -4,7 +4,7 @@
 #include "type_def.h"
 #include "platform.h"
 
-#define RUN_TESTS
+//#define RUN_TESTS
 
 int setup_hardware(hardware_t *hardware) {
   hardware->i2c = create_zybo_i2c();
@@ -30,7 +30,7 @@ int main()
   //test_zybo_pwm_outputs();
   //test_zybo_uart();
   //test_zybo_axi_timer();
-  test_zybo_uart();
+  //test_zybo_uart();
   return 0;
 #endif
 
-- 
GitLab