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