mbed-scli test program

Dependencies:   Scheduler

Committer:
mimi3
Date:
Sun Mar 05 18:02:41 2017 +0900
Revision:
10:72b75743f231
Parent:
2:3e748cfff1d7
fixed:typo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mimi3 2:3e748cfff1d7 1 /*
mimi3 2:3e748cfff1d7 2 # 2017/02: Changed for mbed-scli-test
mimi3 2:3e748cfff1d7 3 # Copyright (C) 2010-2014, audin
mimi3 2:3e748cfff1d7 4 # 2014/02: Modify for mbed for CQ LPC11U35
mimi3 2:3e748cfff1d7 5 # 2013/08: Modify for mbed for LPC1114FN28
mimi3 2:3e748cfff1d7 6 # 2013/07: Modify for LPCOpen Platform.
mimi3 2:3e748cfff1d7 7 # 2011/04, 2012/11
mimi3 2:3e748cfff1d7 8 # 2010/11
mimi3 2:3e748cfff1d7 9 # http://avr.paslog.jp
mimi3 2:3e748cfff1d7 10 # This file is licensed under the MIT License.
mimi3 2:3e748cfff1d7 11 #
mimi3 2:3e748cfff1d7 12 */
mimi3 2:3e748cfff1d7 13
mimi3 2:3e748cfff1d7 14 #include "mbed.h"
mimi3 2:3e748cfff1d7 15 #include "led_tsk.h"
mimi3 2:3e748cfff1d7 16 #include "Scheduler.h"
mimi3 2:3e748cfff1d7 17
mimi3 2:3e748cfff1d7 18
mimi3 2:3e748cfff1d7 19 DigitalOut led1(LED1);
mimi3 2:3e748cfff1d7 20
mimi3 2:3e748cfff1d7 21 #define led1_on() led1=0 /* Negative on */
mimi3 2:3e748cfff1d7 22 #define led1_off() led1=1
mimi3 2:3e748cfff1d7 23
mimi3 2:3e748cfff1d7 24 /*******************
mimi3 2:3e748cfff1d7 25
mimi3 2:3e748cfff1d7 26 * Fake PWM class
mimi3 2:3e748cfff1d7 27
mimi3 2:3e748cfff1d7 28 *******************/
mimi3 2:3e748cfff1d7 29 static void pwm_elm( int ms, int max_ms, DigitalOut *led )
mimi3 2:3e748cfff1d7 30 {
mimi3 2:3e748cfff1d7 31 *led=0; // negative on
mimi3 2:3e748cfff1d7 32 taskWait( ms );
mimi3 2:3e748cfff1d7 33 *led=1;
mimi3 2:3e748cfff1d7 34 taskWait( max_ms - ms);
mimi3 2:3e748cfff1d7 35 }
mimi3 2:3e748cfff1d7 36
mimi3 2:3e748cfff1d7 37 class pwm_fake_t
mimi3 2:3e748cfff1d7 38 {
mimi3 2:3e748cfff1d7 39 int max_val, val, MIN_VAL, dir, speed;
mimi3 2:3e748cfff1d7 40 DigitalOut *led;
mimi3 2:3e748cfff1d7 41 public:
mimi3 2:3e748cfff1d7 42 pwm_fake_t(DigitalOut *_led, int _speed) {
mimi3 2:3e748cfff1d7 43 max_val = speed = _speed;
mimi3 2:3e748cfff1d7 44 val = MIN_VAL = 0;
mimi3 2:3e748cfff1d7 45 dir =1;
mimi3 2:3e748cfff1d7 46 led = _led;
mimi3 2:3e748cfff1d7 47 }
mimi3 2:3e748cfff1d7 48 void run() {
mimi3 2:3e748cfff1d7 49 if( ( val >= max_val) || ( val <= MIN_VAL) ) {
mimi3 2:3e748cfff1d7 50 max_val = speed;//sio_get_led_blink_speed() + 3 ; // change period
mimi3 2:3e748cfff1d7 51 max_val <<= 1; // adjust time
mimi3 2:3e748cfff1d7 52 if( val <= MIN_VAL ) {
mimi3 2:3e748cfff1d7 53 dir = 1;
mimi3 2:3e748cfff1d7 54 taskWait( 1000 ); // wait 1src if led off
mimi3 2:3e748cfff1d7 55 } else {
mimi3 2:3e748cfff1d7 56 dir = -1;
mimi3 2:3e748cfff1d7 57 val = max_val;
mimi3 2:3e748cfff1d7 58 }
mimi3 2:3e748cfff1d7 59 }
mimi3 2:3e748cfff1d7 60 val += dir;
mimi3 2:3e748cfff1d7 61 pwm_elm( val, max_val, led );
mimi3 2:3e748cfff1d7 62 }
mimi3 2:3e748cfff1d7 63 };
mimi3 2:3e748cfff1d7 64
mimi3 2:3e748cfff1d7 65 /*******************
mimi3 2:3e748cfff1d7 66
mimi3 2:3e748cfff1d7 67 * LED1 task
mimi3 2:3e748cfff1d7 68
mimi3 2:3e748cfff1d7 69 *******************/
mimi3 2:3e748cfff1d7 70 void led1_task( void )
mimi3 2:3e748cfff1d7 71 {
mimi3 2:3e748cfff1d7 72 led1_off();
mimi3 2:3e748cfff1d7 73 pwm_fake_t pwm_led( &led1, 10+3);
mimi3 2:3e748cfff1d7 74 while( 1 ) {
mimi3 2:3e748cfff1d7 75 pwm_led.run();
mimi3 2:3e748cfff1d7 76 }
mimi3 2:3e748cfff1d7 77 }
mimi3 2:3e748cfff1d7 78
mimi3 2:3e748cfff1d7 79
mimi3 2:3e748cfff1d7 80