ichiro shirasaka
/
scheduler-demo-cq-lpc11u35
Scheduller Demo
Fork of scheduler-demo-cq-lpc11u35 by
led_tsk.cpp@0:79e298c7d4b9, 2013-08-25 (annotated)
- Committer:
- mimi3
- Date:
- Sun Aug 25 10:28:46 2013 +0000
- Revision:
- 0:79e298c7d4b9
- Child:
- 1:48a906a94c32
For LPC1114FN28. ; Scheduler demo project.
Who changed what in which revision?
User | Revision | Line number | New 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 |