mbed-scli test program

Dependencies:   Scheduler

Revision:
2:3e748cfff1d7
diff -r d5669b136382 -r 3e748cfff1d7 led_tsk.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/led_tsk.cpp	Sun Feb 26 20:46:33 2017 +0900
@@ -0,0 +1,80 @@
+/*
+# 2017/02: Changed for mbed-scli-test
+# Copyright (C) 2010-2014, audin
+# 2014/02: Modify for mbed for CQ LPC11U35
+# 2013/08: Modify for mbed for LPC1114FN28
+# 2013/07: Modify for LPCOpen Platform.
+# 2011/04, 2012/11
+# 2010/11
+# http://avr.paslog.jp
+# This file is licensed under the MIT License.
+#
+*/
+
+#include "mbed.h"
+#include "led_tsk.h"
+#include "Scheduler.h"
+
+
+DigitalOut led1(LED1);
+
+#define led1_on()		led1=0	/*  Negative on */
+#define led1_off()		led1=1
+
+/*******************
+
+* Fake PWM class
+
+ *******************/
+static void pwm_elm( int ms, int max_ms, DigitalOut *led )
+{
+    *led=0; 			// negative on
+    taskWait( ms );
+    *led=1;
+    taskWait( max_ms - ms);
+}
+
+class pwm_fake_t
+{
+    int max_val, val, MIN_VAL, dir, speed;
+    DigitalOut *led;
+public:
+    pwm_fake_t(DigitalOut *_led, int _speed) {
+        max_val = speed = _speed;
+        val = MIN_VAL = 0;
+        dir =1;
+        led = _led;
+    }
+    void run() {
+        if( ( val >= max_val) || ( val <= MIN_VAL) ) {
+            max_val = speed;//sio_get_led_blink_speed() + 3 ;	// change period
+            max_val <<= 1;								// adjust time
+            if( val <= MIN_VAL ) {
+                dir = 1;
+                taskWait( 1000 );							// wait 1src if led off
+            } else {
+                dir = -1;
+                val = max_val;
+            }
+        }
+        val += dir;
+        pwm_elm( val, max_val, led );
+    }
+};
+
+/*******************
+
+* LED1 task
+
+ *******************/
+void led1_task( void )
+{
+    led1_off();
+    pwm_fake_t pwm_led( &led1, 10+3);
+    while( 1 ) {
+        pwm_led.run();
+    }
+}
+
+
+