@@ -34,13 +34,54 @@ void cbfn_fall(void){
3434 fall_count++;
3535}
3636
37+
38+ PinName PWM_IN (PinName pwm_out_pin)
39+ {
40+ switch ( pwm_out_pin ) {
41+ case MBED_CONF_APP_DIO_0:
42+ return MBED_CONF_APP_DIO_1;
43+ break ;
44+ case MBED_CONF_APP_DIO_1:
45+ return MBED_CONF_APP_DIO_0;
46+ break ;
47+ case MBED_CONF_APP_DIO_2:
48+ return MBED_CONF_APP_DIO_3;
49+ break ;
50+ case MBED_CONF_APP_DIO_3:
51+ return MBED_CONF_APP_DIO_2;
52+ break ;
53+ case MBED_CONF_APP_DIO_4:
54+ return MBED_CONF_APP_DIO_5;
55+ break ;
56+ case MBED_CONF_APP_DIO_5:
57+ return MBED_CONF_APP_DIO_4;
58+ break ;
59+ case MBED_CONF_APP_DIO_6:
60+ return MBED_CONF_APP_DIO_7;
61+ break ;
62+ case MBED_CONF_APP_DIO_7:
63+ return MBED_CONF_APP_DIO_6;
64+ break ;
65+ case MBED_CONF_APP_DIO_8:
66+ return MBED_CONF_APP_DIO_9;
67+ break ;
68+ case MBED_CONF_APP_DIO_9:
69+ return MBED_CONF_APP_DIO_8;
70+ break ;
71+ default :
72+ return NC;
73+ break ;
74+ }
75+ }
76+
3777// Template to test that a PWM signal has the correct length by measuring the number falls
3878// interrupts during a specified number of tests.
39- template <PinName pwm_out_pin, PinName int_in_pin, int period_in_miliseconds, int num_tests>
79+ template <PinName pwm_out_pin, int period_in_miliseconds, int num_tests>
4080void PWM_Period_Test (){
4181 // Initialize PWM, InterruptIn, Timer, and Rising / Falling edge counts
4282 fall_count = 0 ;
4383 PwmOut pwm (pwm_out_pin);
84+ PinName int_in_pin = PWM_IN (pwm_out_pin);
4485 InterruptIn iin (int_in_pin);
4586 iin.fall (cbfn_fall);
4687 pwm.period ((float )period_in_miliseconds/1000 );
@@ -116,10 +157,10 @@ Case cases[] = {
116157 Case (" Pwm object definable" , pwm_define_test,greentea_failure_handler), // test pwm object constructor works
117158
118159 // Test Frequency length by counting fall ticks
119- Case (" PWM_0 Frequency 30ms" , PWM_Period_Test< MBED_CONF_APP_PWM_0, MBED_CONF_APP_DIO_2, 30 , 100 >, greentea_failure_handler), // Test at 30ms 100 times, default 50%duty cycle
120- Case (" PWM_1 Frequency 30ms" , PWM_Period_Test< MBED_CONF_APP_PWM_1, MBED_CONF_APP_DIO_4, 30 , 100 >, greentea_failure_handler), // Test at 30ms 100 times, default 50%duty cycle
121- Case (" PWM_2 Frequency 30ms" , PWM_Period_Test< MBED_CONF_APP_PWM_2, MBED_CONF_APP_DIO_7, 30 , 100 >, greentea_failure_handler), // Test at 30ms 100 times, default 50%duty cycle
122- Case (" PWM_3 Frequency 30ms" , PWM_Period_Test< MBED_CONF_APP_PWM_3, MBED_CONF_APP_DIO_8, 30 , 100 >, greentea_failure_handler), // Test at 30ms 100 times, default 50%duty cycle
160+ Case (" PWM_0 Frequency 30ms" , PWM_Period_Test< MBED_CONF_APP_PWM_0, 30 , 100 >, greentea_failure_handler), // Test at 30ms 100 times, default 50%duty cycle
161+ Case (" PWM_1 Frequency 30ms" , PWM_Period_Test< MBED_CONF_APP_PWM_1, 30 , 100 >, greentea_failure_handler), // Test at 30ms 100 times, default 50%duty cycle
162+ Case (" PWM_2 Frequency 30ms" , PWM_Period_Test< MBED_CONF_APP_PWM_2, 30 , 100 >, greentea_failure_handler), // Test at 30ms 100 times, default 50%duty cycle
163+ Case (" PWM_3 Frequency 30ms" , PWM_Period_Test< MBED_CONF_APP_PWM_3, 30 , 100 >, greentea_failure_handler), // Test at 30ms 100 times, default 50%duty cycle
123164};
124165
125166Specification specification (test_setup, cases);
0 commit comments