Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of scheduler-demo by
led_tsk.cpp
00001 /* 00002 # 00003 # Copyright (C) 2010-2014, audin 00004 # 2014/02: Modify for mbed for CQ LPC11U35 00005 # 2013/08: Modify for mbed for LPC1114FN28 00006 # 2013/07: Modify for LPCOpen Platform. 00007 # 2011/04, 2012/11 00008 # 2010/11 00009 # http://avr.paslog.jp 00010 # This file is licensed under the MIT License. 00011 # 00012 */ 00013 00014 #include "mbed.h" 00015 #include "led_tsk.h" 00016 #include "Scheduler.h" 00017 00018 00019 /* for CQ ,lpc11u35 */ 00020 DigitalOut led1(P0_20); 00021 DigitalOut led2(P0_21); 00022 00023 #define led1_on() led1=0 /* Negative on */ 00024 #define led1_off() led1=1 00025 #define led2_on() led2=0 /* Negative on */ 00026 #define led2_off() led2=1 00027 00028 /******************* 00029 00030 * Fake PWM class 00031 00032 *******************/ 00033 static void pwm_elm( int ms, int max_ms, DigitalOut *led ) 00034 { 00035 *led=0; // negative on 00036 taskWait( ms ); 00037 *led=1; 00038 taskWait( max_ms - ms); 00039 } 00040 00041 class pwm_fake_t 00042 { 00043 int max_val, val, MIN_VAL, dir, speed; 00044 DigitalOut *led; 00045 public: 00046 pwm_fake_t(DigitalOut *_led, int _speed) { 00047 max_val = speed = _speed; 00048 val = MIN_VAL = 0; 00049 dir =1; 00050 led = _led; 00051 } 00052 void run() { 00053 if( ( val >= max_val) || ( val <= MIN_VAL) ) { 00054 max_val = speed;//sio_get_led_blink_speed() + 3 ; // change period 00055 max_val <<= 1; // adjust time 00056 if( val <= MIN_VAL ) { 00057 dir = 1; 00058 taskWait( 1000 ); // wait 1src if led off 00059 } else { 00060 dir = -1; 00061 val = max_val; 00062 } 00063 } 00064 val += dir; 00065 pwm_elm( val, max_val, led ); 00066 } 00067 }; 00068 00069 /******************* 00070 00071 * LED1 task 00072 00073 *******************/ 00074 void led1_task( void ) 00075 { 00076 led1_off(); 00077 pwm_fake_t pwm_led( &led1, 10+3); 00078 while( 1 ) { 00079 pwm_led.run(); 00080 } 00081 } 00082 00083 /******************* 00084 00085 * LED2 task 00086 00087 *******************/ 00088 void led2_task( void ) 00089 { 00090 led2_off(); 00091 taskWait( 666 ); 00092 pwm_fake_t pwm_led( &led2, 6+3); 00093 while( 1 ) { 00094 pwm_led.run(); 00095 } 00096 } 00097
Generated on Fri Jul 15 2022 11:51:20 by
1.7.2
