Rtos API example

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers pwm.cpp Source File

pwm.cpp

00001 #include "mbed.h"
00002 
00003 #if defined(TARGET_K64F) || defined(TARGET_K66F)
00004 #define TEST_LED D9
00005 
00006 #elif defined(TARGET_NUCLEO_F030R8) || \
00007       defined(TARGET_NUCLEO_F070RB) || \
00008       defined(TARGET_NUCLEO_F072RB) || \
00009       defined(TARGET_NUCLEO_F091RC) || \
00010       defined(TARGET_NUCLEO_F103RB) || \
00011       defined(TARGET_NUCLEO_F302R8) || \
00012       defined(TARGET_NUCLEO_F303RE) || \
00013       defined(TARGET_NUCLEO_F334R8) || \
00014       defined(TARGET_NUCLEO_F401RE) || \
00015       defined(TARGET_NUCLEO_F410RB) || \
00016       defined(TARGET_NUCLEO_F411RE) || \
00017       defined(TARGET_NUCLEO_L053R8) || \
00018       defined(TARGET_NUCLEO_L073RZ) || \
00019       defined(TARGET_NUCLEO_L152RE)
00020 #define TEST_LED D3
00021 
00022 #elif defined (TARGET_K22F) || \
00023       defined(TARGET_KL27Z) || \
00024       defined (TARGET_LPC824)
00025 #define TEST_LED LED_GREEN
00026 
00027 #elif defined (TARGET_MAXWSNENV)
00028 #define TEST_LED LED_GREEN
00029 
00030 #elif defined (TARGET_DISCO_F407VG)
00031 #define TEST_LED LED1
00032 
00033 #elif defined(TARGET_SAMR21G18A) || defined(TARGET_SAMD21J18A) || defined(TARGET_SAMD21G18A) || defined(TARGET_SAML21J18A)
00034 #define TEST_LED LED1
00035 
00036 #elif defined(TARGET_SAMG55J19)
00037 #define TEST_LED PA01 /*LED in board doesnt have PWM functionality*/
00038 
00039 #else
00040   #error [NOT_SUPPORTED] This test is not supported on this target
00041 #endif
00042 
00043 PwmOut led(TEST_LED);
00044 
00045 int main() {
00046     float crt = 1.0, delta = 0.05;
00047 
00048     led.period_ms(2); // 500Hz
00049     while (true) {
00050         led.write(crt);
00051         wait_ms(50);
00052         crt = crt + delta;
00053         if (crt > 1.0) {
00054             crt = 1.0;
00055             delta = -delta;
00056         }
00057         else if (crt < 0) {
00058             crt = 0;
00059             delta = -delta;
00060         }
00061     }
00062 }