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 e4c75bd5011d430872a41298bc42b941b2b1d152..b5595e418f24a85953b50aa254c3cc4eda2d3837 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,7 +1,7 @@ #include "hw_impl_zybo.h" -#define THROTTLE_PULSE_WIDTH_LOW 1000 // us -#define THROTTLE_PULSE_WIDTH_HIGH 2000 // us +#define THROTTLE_PULSE_WIDTH_LOW 100000 // 1us +#define THROTTLE_PULSE_WIDTH_HIGH 200000 // 2us #define PERIOD_WIDTH 222222 // 100000000 ns / 450 #define PULSE_WIDTH_ADDR_OFFSET 4 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 4cf1ae4d8cf1844b3f24fec38e8d6aff249f5289..ca3583935249c2a96655e454a8d29999ad0182cf 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 @@ -99,4 +99,37 @@ int test_zybo_pwm_inputs() { } } +/** + * Test for the PWMInputDriver. + * + * Instructions: + * 1) Connect the quad Zybo board to computer using USB. + * 2) Move jump on Zybo board to use JTAG instead of SD. + * 3) Turn on Zybo board and turn on Spektrum handheld controller. + * - Verify receiver on quad pairs with controller (orange LED should turn on) + * 3) Place breakpoint somewhere in the while loop of this function. + * 4) Set the RUN_TESTS macro in main.c + * 5) Uncomment only this test in main.c + * 6) Debug main. + * 7) Observe the values of pwm_inputs in debugger chaning as you use the + * Spektrum RC controller. + */ +int test_zybo_pwm_outputs() { + struct PWMOutputDriver pwm_outputs = create_zybo_pwm_outputs(); + pwm_outputs.reset(&pwm_outputs); + + unsigned long pwms[4]; + pwms[0] = 1000; + pwms[1] = 1000; + pwms[2] = 1000; + pwms[3] = 1000; + while (1) { + int i; + for (i = 0; i < 4; i += 1) { + pwm_outputs.write(&pwm_outputs, i, pwms[i]); + } + int temp = 0; + } +} + diff --git a/quad/xsdk_workspace/modular_quad_pid/src/main.c b/quad/xsdk_workspace/modular_quad_pid/src/main.c index b0b7ccf45778a8c70cce6a5475419e04e6ee951c..c49e2bed8fa60b6fcccb4c9e0344106544de45a9 100644 --- a/quad/xsdk_workspace/modular_quad_pid/src/main.c +++ b/quad/xsdk_workspace/modular_quad_pid/src/main.c @@ -26,8 +26,8 @@ int main() #ifdef RUN_TESTS //test_zybo_mio7_led_and_system(); //test_zybo_i2c(); - test_zybo_pwm_inputs(); - //test_zybo_pwm_outputs(); + //test_zybo_pwm_inputs(); + test_zybo_pwm_outputs(); //test_zybo_uart(); //test_zybo_axi_timer(); return 0;