mbed-os
Fork of mbed-os by
features/unsupported/tests/mbed/pwm/main.cpp
- Committer:
- xuaner
- Date:
- 2017-07-20
- Revision:
- 1:3deb71413561
- Parent:
- 0:f269e3021894
File content as of revision 1:3deb71413561:
#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) */ float value = 0.75; int main() { #if defined(TARGET_FF_ARDUINO) PwmOut pwm(D9); int period_ms = 10; pwm.period_ms(period_ms); pwm.write(value); float result = floor(pwm.read() * 100 + 0.5) / 100; // round it to 0.xx printf("PWM period = %dms with duty cycle: %d%%\n", period_ms, (int) (result * 100)); notify_completion(result == value ? true : false); #elif defined(TARGET_LPC1768) || defined(TARGET_LPC2368) || defined(TARGET_LPC11U24) || defined(TARGET_LPC4088) || defined(TARGET_LPC2460) 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()); #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_LPC1347) PwmOut pwm_1(P0_18); PwmOut pwm_2(P0_9); pwm_1.write(0.75); pwm_2.write(0.50); printf("Initialize PWM on P0_18 with duty cycle: %.2f\n", pwm_1.read()); printf("Initialize PWM on P0_9 with duty cycle: %.2f\n", pwm_2.read()); #elif defined(TARGET_NRF51822) PwmOut pwm_p24(p24); 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()); #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()); #elif defined(TARGET_DISCO_F303VC) PwmOut pwm_1(PA_8); PwmOut pwm_2(PA_9); 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()); #elif defined(TARGET_MAXWSNENV) PwmOut pwm_1(TP2); PwmOut pwm_2(TP4); pwm_1.write(0.75); pwm_2.write(0.50); printf("Initialize PWM on pin TP2 with duty cycle: %.2f\n", pwm_1.read()); printf("Initialize PWM on pin TP4 with duty cycle: %.2f\n", pwm_2.read()); #elif defined(TARGET_DISCO_F407VG) PwmOut pwm_1(PD_12); PwmOut pwm_2(PD_13); pwm_1.write(value); pwm_2.write(0.50); float result = floor(pwm_1.read() * 100 + 0.5) / 100; // round it to 0.xx printf("Initialize PWM on pin PD_12 with duty cycle: %.2f\n", result); printf("Initialize PWM on pin PD_13 with duty cycle: %.2f\n", pwm_2.read()); notify_completion(result == value ? true : false); #elif defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F429ZI) PwmOut pwm_1(PA_0); pwm_1.write(value); float result = floor(pwm_1.read() * 100 + 0.5) / 100; // round it to 0.xx printf("Initialize PWM on pin PD_12 with duty cycle: %.2f\n", result); notify_completion(result == value ? true : false); #elif defined(TARGET_MTS_MDOT_F405RG) PwmOut pwm_1(PA_0); pwm_1.write(value); float result = floor(pwm_1.read() * 100 + 0.5) / 100; // round it to 0.xx printf("Initialize PWM on pin PD_12 with duty cycle: %.2f\n", result); notify_completion(result == value ? true : false); #elif defined(TARGET_MTS_DRAGONFLY_F411RE) PwmOut pwm_1(PA_0); pwm_1.write(value); float result = floor(pwm_1.read() * 100 + 0.5) / 100; // round it to 0.xx printf("Initialize PWM on pin PD_12 with duty cycle: %.2f\n", result); notify_completion(result == value ? true : false); #elif defined(TARGET_MTS_MDOT_F411RE) PwmOut pwm_1(PA_0); pwm_1.write(value); float result = floor(pwm_1.read() * 100 + 0.5) / 100; // round it to 0.xx printf("Initialize PWM on pin PD_12 with duty cycle: %.2f\n", result); notify_completion(result == value ? true : false); #elif defined(TARGET_UBLOX_EVK_ODIN_W2) PwmOut pwm_1(PA_0); pwm_1.write(value); float result = floor(pwm_1.read() * 100 + 0.5) / 100; // round it to 0.xx printf("Initialize PWM on pin PD_12 with duty cycle: %.2f\n", result); notify_completion(result == value ? true : false); #elif defined(TARGET_MAX32600MBED) PwmOut pwm_1(P1_2); PwmOut pwm_2(P1_3); pwm_1.write(0.75); pwm_2.write(0.50); printf("Initialize PWM on pin P1.2 with duty cycle: %.2f\n", pwm_1.read()); printf("Initialize PWM on pin P1.3 with duty cycle: %.2f\n", pwm_2.read()); #elif defined(TARGET_SAMR21G18A) || defined(TARGET_SAMD21J18A) || defined(TARGET_SAMD21G18A) || defined(TARGET_SAML21J18A) PwmOut pwm(LED1); pwm.period_ms(1000); pwm.write(value); float result = floor(pwm.read() * 100 + 0.5) / 100; // round it to 0.xx printf("Initialize PWM on pin LED1 with duty cycle: %.2f\n", result); notify_completion(result == value ? true : false); #elif defined(TARGET_SAMG55J19) PwmOut pwm(PA00); /*LED Doesnt support PWM for G55 XPro*/ pwm.period_ms(1000); pwm.write(value); float result = floor(pwm.read() * 100 + 0.5) / 100; // round it to 0.xx printf("Initialize PWM on pin PA01 with duty cycle: %.2f\n", result); notify_completion(result == value ? true : false); #else #error [NOT_SUPPORTED] This test is not supported on this target. #endif notify_completion(true); }