@@ -34,13 +34,54 @@ void cbfn_fall(void){
34
34
fall_count++;
35
35
}
36
36
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
+
37
77
// Template to test that a PWM signal has the correct length by measuring the number falls
38
78
// 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>
40
80
void PWM_Period_Test (){
41
81
// Initialize PWM, InterruptIn, Timer, and Rising / Falling edge counts
42
82
fall_count = 0 ;
43
83
PwmOut pwm (pwm_out_pin);
84
+ PinName int_in_pin = PWM_IN (pwm_out_pin);
44
85
InterruptIn iin (int_in_pin);
45
86
iin.fall (cbfn_fall);
46
87
pwm.period ((float )period_in_miliseconds/1000 );
@@ -116,10 +157,10 @@ Case cases[] = {
116
157
Case (" Pwm object definable" , pwm_define_test,greentea_failure_handler), // test pwm object constructor works
117
158
118
159
// 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
123
164
};
124
165
125
166
Specification specification (test_setup, cases);
0 commit comments