For LPC1114FN28, LPC1114. Multitask scheduler demo project.,arduino,due,compatible

Dependencies:   Scheduler mbed

Committer:
mimi3
Date:
Sat Mar 08 04:05:15 2014 +0000
Revision:
1:be0642fdd704
Parent:
0:79e298c7d4b9
delete: just comment

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mimi3 0:79e298c7d4b9 1 /*
mimi3 0:79e298c7d4b9 2 #
mimi3 0:79e298c7d4b9 3 # Copyright (C) 2010-2013, audin
mimi3 0:79e298c7d4b9 4 # 2013/08: Modify for mbed for LPC1114FN28
mimi3 0:79e298c7d4b9 5 # 2013/07: Modify for LPCOpen Platform.
mimi3 0:79e298c7d4b9 6 # 2011/04, 2012/11
mimi3 0:79e298c7d4b9 7 # 2010/11
mimi3 0:79e298c7d4b9 8 # http://avr.paslog.jp
mimi3 0:79e298c7d4b9 9 # This file is licensed under the MIT License.
mimi3 0:79e298c7d4b9 10 #
mimi3 0:79e298c7d4b9 11 */
mimi3 0:79e298c7d4b9 12
mimi3 0:79e298c7d4b9 13 #include "mbed.h"
mimi3 0:79e298c7d4b9 14 #include "led_tsk.h"
mimi3 0:79e298c7d4b9 15 #include "Scheduler.h"
mimi3 0:79e298c7d4b9 16
mimi3 0:79e298c7d4b9 17 static int max_val = 0;
mimi3 0:79e298c7d4b9 18 static int val = 0;
mimi3 0:79e298c7d4b9 19 #define sio_get_led_blink_speed() 9 /* fixed preiod */
mimi3 0:79e298c7d4b9 20
mimi3 0:79e298c7d4b9 21 /* for CQ MyARM ,lpc1114fn28 */
mimi3 0:79e298c7d4b9 22 DigitalOut led1(LED1);
mimi3 0:79e298c7d4b9 23 DigitalOut led2(LED2);
mimi3 0:79e298c7d4b9 24 #define led1_on() led1=0 /* Negative on */
mimi3 0:79e298c7d4b9 25 #define led1_off() led1=1
mimi3 0:79e298c7d4b9 26 #define led2_on() led2=1
mimi3 0:79e298c7d4b9 27 #define led2_off() led2=0
mimi3 0:79e298c7d4b9 28
mimi3 0:79e298c7d4b9 29 /*******************
mimi3 0:79e298c7d4b9 30
mimi3 0:79e298c7d4b9 31 * LED1 init
mimi3 0:79e298c7d4b9 32
mimi3 0:79e298c7d4b9 33 *******************/
mimi3 0:79e298c7d4b9 34 void led_init(void)
mimi3 0:79e298c7d4b9 35 {
mimi3 0:79e298c7d4b9 36 led1_off(); /* first off */
mimi3 0:79e298c7d4b9 37 }
mimi3 0:79e298c7d4b9 38
mimi3 0:79e298c7d4b9 39 /*******************
mimi3 0:79e298c7d4b9 40
mimi3 0:79e298c7d4b9 41 * Fake PWM
mimi3 0:79e298c7d4b9 42
mimi3 0:79e298c7d4b9 43 *******************/
mimi3 0:79e298c7d4b9 44 static void pwm( int ms )
mimi3 0:79e298c7d4b9 45 {
mimi3 0:79e298c7d4b9 46 led1_on();
mimi3 0:79e298c7d4b9 47 taskWait( ms );
mimi3 0:79e298c7d4b9 48 led1_off();
mimi3 0:79e298c7d4b9 49 taskWait( max_val - val);
mimi3 0:79e298c7d4b9 50 }
mimi3 0:79e298c7d4b9 51
mimi3 0:79e298c7d4b9 52 /*******************
mimi3 0:79e298c7d4b9 53
mimi3 0:79e298c7d4b9 54 * LED task
mimi3 0:79e298c7d4b9 55
mimi3 0:79e298c7d4b9 56 *******************/
mimi3 0:79e298c7d4b9 57 void led_task( void)
mimi3 0:79e298c7d4b9 58 {
mimi3 0:79e298c7d4b9 59 led_tsk( (void *)0 ); /* Just stub */
mimi3 0:79e298c7d4b9 60 }
mimi3 0:79e298c7d4b9 61
mimi3 0:79e298c7d4b9 62 void led_tsk( void *pvParameters )
mimi3 0:79e298c7d4b9 63 {
mimi3 0:79e298c7d4b9 64 ( void ) pvParameters; // not used
mimi3 0:79e298c7d4b9 65 led_init();
mimi3 0:79e298c7d4b9 66 const int MIN_VAL = 0;
mimi3 0:79e298c7d4b9 67 static int dir = 1;
mimi3 0:79e298c7d4b9 68 while( 1 ) {
mimi3 0:79e298c7d4b9 69 if( ( val >= max_val) || ( val <= MIN_VAL) ) {
mimi3 0:79e298c7d4b9 70 max_val = sio_get_led_blink_speed() + 3 ; // change period
mimi3 0:79e298c7d4b9 71 max_val <<= 1; // adjust time
mimi3 0:79e298c7d4b9 72 if( val <= MIN_VAL ) {
mimi3 0:79e298c7d4b9 73 dir = 1;
mimi3 0:79e298c7d4b9 74 taskWait( 1000 ); // wait 1src if led off
mimi3 0:79e298c7d4b9 75 } else {
mimi3 0:79e298c7d4b9 76 dir = -1;
mimi3 0:79e298c7d4b9 77 val = max_val;
mimi3 0:79e298c7d4b9 78 }
mimi3 0:79e298c7d4b9 79 }
mimi3 0:79e298c7d4b9 80 val += dir;
mimi3 0:79e298c7d4b9 81 pwm( val );
mimi3 0:79e298c7d4b9 82 }
mimi3 0:79e298c7d4b9 83 }
mimi3 0:79e298c7d4b9 84
mimi3 0:79e298c7d4b9 85 /*******************
mimi3 0:79e298c7d4b9 86
mimi3 0:79e298c7d4b9 87 * LED2 init
mimi3 0:79e298c7d4b9 88
mimi3 0:79e298c7d4b9 89 *******************/
mimi3 0:79e298c7d4b9 90 void led2_init(void)
mimi3 0:79e298c7d4b9 91 {
mimi3 0:79e298c7d4b9 92 led2_off(); /* first off */
mimi3 0:79e298c7d4b9 93 }
mimi3 0:79e298c7d4b9 94
mimi3 0:79e298c7d4b9 95 void led2_task( void )
mimi3 0:79e298c7d4b9 96 {
mimi3 0:79e298c7d4b9 97 led2_init();
mimi3 0:79e298c7d4b9 98 while( 1 ) {
mimi3 0:79e298c7d4b9 99 led2_on();
mimi3 0:79e298c7d4b9 100 taskWait(2000);
mimi3 0:79e298c7d4b9 101 led2_off();
mimi3 0:79e298c7d4b9 102 taskWait(2000);
mimi3 0:79e298c7d4b9 103 }
mimi3 0:79e298c7d4b9 104 }
mimi3 0:79e298c7d4b9 105