diff --git a/quad/xsdk_workspace/modular_quad_pid/src/hw_impl_zybo.h b/quad/xsdk_workspace/modular_quad_pid/src/hw_impl_zybo.h index 9e30ddb024b0f247fdac100f71a5e15e965a4845..aef58b58e95c1c5ae08e0ea18a35b2ddb8138241 100644 --- a/quad/xsdk_workspace/modular_quad_pid/src/hw_impl_zybo.h +++ b/quad/xsdk_workspace/modular_quad_pid/src/hw_impl_zybo.h @@ -64,5 +64,6 @@ struct SystemDriver create_zybo_system(); int test_zybo_i2c(); int test_zybo_mio7_led_and_system(); +int test_zybo_pwm_inputs(); #endif 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 7ec8c2ed5f2fc071ae9cf4fb2f9d3879371ba0b9..4cf1ae4d8cf1844b3f24fec38e8d6aff249f5289 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 @@ -70,4 +70,33 @@ int test_zybo_i2c() { return 0; } +/** + * 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_inputs() { + struct PWMInputDriver pwm_inputs = create_zybo_pwm_inputs(); + pwm_inputs.reset(&pwm_inputs); + + unsigned long pwms[6]; + while (1) { + int i; + for (i = 0; i < 6; i += 1) { + pwm_inputs.read(&pwm_inputs, 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 c62e717ed23e50ad696da047d3de139fb2da920e..b0b7ccf45778a8c70cce6a5475419e04e6ee951c 100644 --- a/quad/xsdk_workspace/modular_quad_pid/src/main.c +++ b/quad/xsdk_workspace/modular_quad_pid/src/main.c @@ -14,6 +14,7 @@ int setup_hardware(hardware_t *hardware) { hardware->global_timer = create_zybo_global_timer(); hardware->axi_timer = create_zybo_axi_timer(); hardware->mio7_led = create_zybo_mio7_led(); + hardware->sys = create_zybo_system(); return 0; } @@ -23,9 +24,9 @@ int main() init_platform(); #ifdef RUN_TESTS - test_zybo_mio7_led_and_system(); + //test_zybo_mio7_led_and_system(); //test_zybo_i2c(); - //test_zybo_pwm_inputs(); + test_zybo_pwm_inputs(); //test_zybo_pwm_outputs(); //test_zybo_uart(); //test_zybo_axi_timer();