mbed-os/libraries/tests/mbed/pwm/main.cpp

85 lines
2.3 KiB
C++
Raw Normal View History

#include "test_env.h"
/* Timer/Match Register Pinout Options
CT16B0/MR0 p5 (P0_9)
CT16B0/MR1 p6 (P0_8)
CT16B0/MR2 p34 (P1_15)
CT16B1/MR0 p36 (P0_21)
CT16B1/MR1 p20 (P0_22) and p14 (P1_23)
CT32B0/MR0 p25 (P1_24)
CT32B0/MR1 p26 (P1_25) and USBTX (P0_19)
CT32B0/MR2 p10 (P1_26)
*/
2014-04-03 19:30:01 +00:00
float value = 0.75;
int main() {
2014-04-03 19:30:01 +00:00
#if defined(TARGET_K64F) || defined(TARGET_KL05Z) || defined(TARGET_KL25Z) || defined(TARGET_NUCLEO_F401RE)
PwmOut pwm(D9);
pwm.period_ms(10);
pwm.write(value);
float result = floor(pwm.read() * 100 + 0.5) / 100; // round it to 0.xx
printf("%.2f\n", result);
notify_completion(result == value ? true : false);
#elif defined(TARGET_LPC1768) || defined(TARGET_LPC2368) || defined(TARGET_LPC11U24) || defined(TARGET_LPC4088)
PwmOut pwm_p25(p25);
PwmOut pwm_p26(p26);
pwm_p25.write(0.75);
pwm_p26.write(0.50);
printf("Initialize PWM on pin 25 with duty cycle: %.2f\n", pwm_p25.read());
printf("Initialize PWM on pin 26 with duty cycle: %.2f\n", pwm_p26.read());
2013-02-26 14:57:42 +00:00
#elif defined(TARGET_LPC1114)
PwmOut pwm_dp24(dp24); // P0_1
PwmOut pwm_dp18(dp18); // P1_9
pwm_dp24.write(0.75);
pwm_dp18.write(0.50);
printf("Initialize PWM on pin 24 with duty cycle: %.2f\n", pwm_dp24.read());
printf("Initialize PWM on pin 18 with duty cycle: %.2f\n", pwm_dp18.read());
#elif defined(TARGET_nRF51822)
PwmOut pwm_p24(p24);
2014-04-03 19:30:01 +00:00
PwmOut pwm_p25(p25);
pwm_p24.write(0.75);
pwm_p25.write(0.50);
printf("Initialize PWM on pin 24 with duty cycle: %.2f\n", pwm_p24.read());
printf("Initialize PWM on pin 25 with duty cycle: %.2f\n", pwm_p25.read());
2014-03-19 12:15:59 +00:00
#elif defined(TARGET_DISCO_F100RB)
PwmOut pwm_1(PB_3);
PwmOut pwm_2(PB_4);
pwm_1.write(0.75);
pwm_2.write(0.50);
printf("Initialize PWM on pin PB_3 with duty cycle: %.2f\n", pwm_1.read());
printf("Initialize PWM on pin PB_4 with duty cycle: %.2f\n", pwm_2.read());
#elif defined(TARGET_DISCO_F051R8)
PwmOut pwm_1(PA_7);
PwmOut pwm_2(PC_7);
pwm_1.write(0.75);
pwm_2.write(0.50);
printf("Initialize PWM on pin PA_7 with duty cycle: %.2f\n", pwm_1.read());
printf("Initialize PWM on pin PC_7 with duty cycle: %.2f\n", pwm_2.read());
2014-04-03 19:30:01 +00:00
#else
#error This test is not supported on this target.
2013-02-26 14:57:42 +00:00
#endif
notify_completion(true);
}