Skip to content

Commit 2f34cf3

Browse files
committed
PWM test : Make PWM pin configurable
Each test case selects only the pwm_out_pin, int_in_pin is no more hardcoded but defined according the selected pwm_out_pin.
1 parent 044200f commit 2f34cf3

File tree

3 files changed

+167
-44
lines changed

3 files changed

+167
-44
lines changed

TESTS/API/PWM_fall/PWM_fall.cpp

+46-5
Original file line numberDiff line numberDiff line change
@@ -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>
4080
void 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

125166
Specification specification(test_setup, cases);

TESTS/API/PWM_rise/PWM_rise.cpp

+45-5
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,53 @@ void cbfn_rise(void){
3434
rise_count++;
3535
}
3636

37+
PinName PWM_IN(PinName pwm_out_pin)
38+
{
39+
switch ( pwm_out_pin ) {
40+
case MBED_CONF_APP_DIO_0:
41+
return MBED_CONF_APP_DIO_1;
42+
break;
43+
case MBED_CONF_APP_DIO_1:
44+
return MBED_CONF_APP_DIO_0;
45+
break;
46+
case MBED_CONF_APP_DIO_2:
47+
return MBED_CONF_APP_DIO_3;
48+
break;
49+
case MBED_CONF_APP_DIO_3:
50+
return MBED_CONF_APP_DIO_2;
51+
break;
52+
case MBED_CONF_APP_DIO_4:
53+
return MBED_CONF_APP_DIO_5;
54+
break;
55+
case MBED_CONF_APP_DIO_5:
56+
return MBED_CONF_APP_DIO_4;
57+
break;
58+
case MBED_CONF_APP_DIO_6:
59+
return MBED_CONF_APP_DIO_7;
60+
break;
61+
case MBED_CONF_APP_DIO_7:
62+
return MBED_CONF_APP_DIO_6;
63+
break;
64+
case MBED_CONF_APP_DIO_8:
65+
return MBED_CONF_APP_DIO_9;
66+
break;
67+
case MBED_CONF_APP_DIO_9:
68+
return MBED_CONF_APP_DIO_8;
69+
break;
70+
default:
71+
return NC;
72+
break;
73+
}
74+
}
75+
3776
// Template to test that a PWM signal has the correct length by measuring the number of rise interrupts
3877
// interrupts during a specified number of tests.
39-
template <PinName pwm_out_pin, PinName int_in_pin, int period_in_miliseconds, int num_tests>
78+
template <PinName pwm_out_pin, int period_in_miliseconds, int num_tests>
4079
void PWM_Period_Test(){
4180
// Initialize PWM, InterruptIn, Timer, and Rising / Falling edge counts
4281
rise_count = 0;
4382
PwmOut pwm(pwm_out_pin);
83+
PinName int_in_pin = PWM_IN(pwm_out_pin);
4484
InterruptIn iin(int_in_pin);
4585
iin.rise(cbfn_rise);
4686
pwm.period((float)period_in_miliseconds/1000);
@@ -116,10 +156,10 @@ Case cases[] = {
116156
Case("Pwm object definable", pwm_define_test,greentea_failure_handler),
117157

118158
// Test Frequency length by counting rise 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
159+
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
160+
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
161+
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
162+
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
123163

124164
};
125165

0 commit comments

Comments
 (0)