sho yamaguchi
/
MYTEST
test
main.cpp@0:6aabaf00a6e9, 2016-10-12 (annotated)
- Committer:
- h_nakanishi
- Date:
- Wed Oct 12 14:08:00 2016 +0000
- Revision:
- 0:6aabaf00a6e9
- Child:
- 1:21371da39168
TEST
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
h_nakanishi | 0:6aabaf00a6e9 | 1 | #include "mbed.h" |
h_nakanishi | 0:6aabaf00a6e9 | 2 | #include "SoftPWM.h" |
h_nakanishi | 0:6aabaf00a6e9 | 3 | |
h_nakanishi | 0:6aabaf00a6e9 | 4 | #define LED_ON 1 |
h_nakanishi | 0:6aabaf00a6e9 | 5 | #define LED_OFF 0 |
h_nakanishi | 0:6aabaf00a6e9 | 6 | |
h_nakanishi | 0:6aabaf00a6e9 | 7 | #define TIME_10ms 1 |
h_nakanishi | 0:6aabaf00a6e9 | 8 | #define TIME_20ms 2 |
h_nakanishi | 0:6aabaf00a6e9 | 9 | #define TIME_30ms 3 |
h_nakanishi | 0:6aabaf00a6e9 | 10 | #define TIME_40ms 4 |
h_nakanishi | 0:6aabaf00a6e9 | 11 | #define TIME_50ms 5 |
h_nakanishi | 0:6aabaf00a6e9 | 12 | #define TIME_100ms 10 |
h_nakanishi | 0:6aabaf00a6e9 | 13 | #define TIME_200ms 20 |
h_nakanishi | 0:6aabaf00a6e9 | 14 | #define TIME_500ms 50 |
h_nakanishi | 0:6aabaf00a6e9 | 15 | |
h_nakanishi | 0:6aabaf00a6e9 | 16 | static Ticker flipper; // Tick Timer |
h_nakanishi | 0:6aabaf00a6e9 | 17 | |
h_nakanishi | 0:6aabaf00a6e9 | 18 | static DigitalOut ledu(LED_USER); // LED-User |
h_nakanishi | 0:6aabaf00a6e9 | 19 | static SoftPWM ledr(LED_RED); // LED-Red |
h_nakanishi | 0:6aabaf00a6e9 | 20 | static SoftPWM ledg(LED_GREEN); // LED-Green |
h_nakanishi | 0:6aabaf00a6e9 | 21 | static SoftPWM ledb(LED_BLUE); // LED-Blue |
h_nakanishi | 0:6aabaf00a6e9 | 22 | |
h_nakanishi | 0:6aabaf00a6e9 | 23 | static unsigned int syscnt_u; // SystemCounter for LED-User |
h_nakanishi | 0:6aabaf00a6e9 | 24 | static unsigned int syscnt_r; // SystemCounter for LED-Red |
h_nakanishi | 0:6aabaf00a6e9 | 25 | static unsigned int syscnt_g; // SystemCounter for LED-Green |
h_nakanishi | 0:6aabaf00a6e9 | 26 | static unsigned int syscnt_b; // SystemCounter for LED-Blue |
h_nakanishi | 0:6aabaf00a6e9 | 27 | |
h_nakanishi | 0:6aabaf00a6e9 | 28 | volatile static unsigned int flg_ledu; // LED-User Flag |
h_nakanishi | 0:6aabaf00a6e9 | 29 | volatile static unsigned int flg_ledr; // LED-Red Flag |
h_nakanishi | 0:6aabaf00a6e9 | 30 | volatile static unsigned int flg_ledg; // LED-Green Flag |
h_nakanishi | 0:6aabaf00a6e9 | 31 | volatile static unsigned int flg_ledb; // LED-Blue Flag |
h_nakanishi | 0:6aabaf00a6e9 | 32 | |
h_nakanishi | 0:6aabaf00a6e9 | 33 | void flip() { |
h_nakanishi | 0:6aabaf00a6e9 | 34 | // Check 500ms for LED-User |
h_nakanishi | 0:6aabaf00a6e9 | 35 | syscnt_u++; // increment SystemCounter for LED-User |
h_nakanishi | 0:6aabaf00a6e9 | 36 | if( syscnt_u >= TIME_500ms ){ |
h_nakanishi | 0:6aabaf00a6e9 | 37 | flg_ledu++; |
h_nakanishi | 0:6aabaf00a6e9 | 38 | syscnt_u = 0; |
h_nakanishi | 0:6aabaf00a6e9 | 39 | } |
h_nakanishi | 0:6aabaf00a6e9 | 40 | |
h_nakanishi | 0:6aabaf00a6e9 | 41 | // Check 10ms for LED-Red |
h_nakanishi | 0:6aabaf00a6e9 | 42 | syscnt_r++; // increment SystemCounter for LED-Red |
h_nakanishi | 0:6aabaf00a6e9 | 43 | if( syscnt_r >= TIME_10ms ){ |
h_nakanishi | 0:6aabaf00a6e9 | 44 | flg_ledr++; |
h_nakanishi | 0:6aabaf00a6e9 | 45 | syscnt_r = 0; |
h_nakanishi | 0:6aabaf00a6e9 | 46 | } |
h_nakanishi | 0:6aabaf00a6e9 | 47 | |
h_nakanishi | 0:6aabaf00a6e9 | 48 | // Check 20ms for LED-Green |
h_nakanishi | 0:6aabaf00a6e9 | 49 | syscnt_g++; // increment SystemCounter for LED-Green |
h_nakanishi | 0:6aabaf00a6e9 | 50 | if( syscnt_g >= TIME_20ms ){ |
h_nakanishi | 0:6aabaf00a6e9 | 51 | flg_ledg++; |
h_nakanishi | 0:6aabaf00a6e9 | 52 | syscnt_g = 0; |
h_nakanishi | 0:6aabaf00a6e9 | 53 | } |
h_nakanishi | 0:6aabaf00a6e9 | 54 | |
h_nakanishi | 0:6aabaf00a6e9 | 55 | // Check 30ms for LED-Blue |
h_nakanishi | 0:6aabaf00a6e9 | 56 | syscnt_b++; // increment SystemCounter for LED-Blue |
h_nakanishi | 0:6aabaf00a6e9 | 57 | if( syscnt_b >= TIME_30ms ){ |
h_nakanishi | 0:6aabaf00a6e9 | 58 | flg_ledb++; |
h_nakanishi | 0:6aabaf00a6e9 | 59 | syscnt_b = 0; |
h_nakanishi | 0:6aabaf00a6e9 | 60 | } |
h_nakanishi | 0:6aabaf00a6e9 | 61 | } |
h_nakanishi | 0:6aabaf00a6e9 | 62 | |
h_nakanishi | 0:6aabaf00a6e9 | 63 | int main() { |
h_nakanishi | 0:6aabaf00a6e9 | 64 | |
h_nakanishi | 0:6aabaf00a6e9 | 65 | ledu = LED_OFF; // LED-User Off |
h_nakanishi | 0:6aabaf00a6e9 | 66 | |
h_nakanishi | 0:6aabaf00a6e9 | 67 | ledr.period_ms(10); // Set PWM Period 10ms |
h_nakanishi | 0:6aabaf00a6e9 | 68 | ledr = 0.0f; // Set LED-Red Duty |
h_nakanishi | 0:6aabaf00a6e9 | 69 | |
h_nakanishi | 0:6aabaf00a6e9 | 70 | ledg.period_ms(10); // Set PWM Period 10ms |
h_nakanishi | 0:6aabaf00a6e9 | 71 | ledg = 0.0f; // Set LED-Green Duty |
h_nakanishi | 0:6aabaf00a6e9 | 72 | |
h_nakanishi | 0:6aabaf00a6e9 | 73 | ledb.period_ms(10); // Set PWM Period 10ms |
h_nakanishi | 0:6aabaf00a6e9 | 74 | ledb = 0.0f; // Set LED-Blue Duty |
h_nakanishi | 0:6aabaf00a6e9 | 75 | |
h_nakanishi | 0:6aabaf00a6e9 | 76 | flg_ledu = 0; // Initialize LED-User Flag |
h_nakanishi | 0:6aabaf00a6e9 | 77 | flg_ledr = 0; // Initialize LED-Red Flag |
h_nakanishi | 0:6aabaf00a6e9 | 78 | flg_ledg = 0; // Initialize LED-Green Flag |
h_nakanishi | 0:6aabaf00a6e9 | 79 | flg_ledb = 0; // Initialize LED-Blue Flag |
h_nakanishi | 0:6aabaf00a6e9 | 80 | |
h_nakanishi | 0:6aabaf00a6e9 | 81 | syscnt_u = 0; // Initialize System Counter for LED-User |
h_nakanishi | 0:6aabaf00a6e9 | 82 | syscnt_r = 0; // Initialize System Counter for LED-Red |
h_nakanishi | 0:6aabaf00a6e9 | 83 | syscnt_g = 0; // Initialize System Counter for LED-Green |
h_nakanishi | 0:6aabaf00a6e9 | 84 | syscnt_b = 0; // Initialize System Counter for LED-Blue |
h_nakanishi | 0:6aabaf00a6e9 | 85 | |
h_nakanishi | 0:6aabaf00a6e9 | 86 | unsigned int cntr = 0; // Initialize LED-Red Counter |
h_nakanishi | 0:6aabaf00a6e9 | 87 | unsigned int cntg = 0; // Initialize LED-Green Counter |
h_nakanishi | 0:6aabaf00a6e9 | 88 | unsigned int cntb = 0; // Initialize LED-Blue Counter |
h_nakanishi | 0:6aabaf00a6e9 | 89 | |
h_nakanishi | 0:6aabaf00a6e9 | 90 | int cntrd = 1; // Set LED-Red Counter Direction +1 |
h_nakanishi | 0:6aabaf00a6e9 | 91 | int cntgd = 1; // Set LED-Green Counter Direction +1 |
h_nakanishi | 0:6aabaf00a6e9 | 92 | int cntbd = 1; // Set LED-Blue Counter Direction +1 |
h_nakanishi | 0:6aabaf00a6e9 | 93 | |
h_nakanishi | 0:6aabaf00a6e9 | 94 | unsigned int flg_ledu_last = 0; // Initialize LED-User Flag (last value) |
h_nakanishi | 0:6aabaf00a6e9 | 95 | unsigned int flg_ledr_last = 0; // Initialize LED-Red Flag (last value) |
h_nakanishi | 0:6aabaf00a6e9 | 96 | unsigned int flg_ledg_last = 0; // Initialize LED-Green Flag (last value) |
h_nakanishi | 0:6aabaf00a6e9 | 97 | unsigned int flg_ledb_last = 0; // Initialize LED-Blue Flag (last value) |
h_nakanishi | 0:6aabaf00a6e9 | 98 | |
h_nakanishi | 0:6aabaf00a6e9 | 99 | flipper.attach_us(&flip, 10000); // TickerTime Set 10ms |
h_nakanishi | 0:6aabaf00a6e9 | 100 | |
h_nakanishi | 0:6aabaf00a6e9 | 101 | while(1) { |
h_nakanishi | 0:6aabaf00a6e9 | 102 | |
h_nakanishi | 0:6aabaf00a6e9 | 103 | //----- LED User ----- |
h_nakanishi | 0:6aabaf00a6e9 | 104 | if(flg_ledu_last != flg_ledu) { // Has LED-User Flag been Changed? |
h_nakanishi | 0:6aabaf00a6e9 | 105 | flg_ledu_last = flg_ledu; // Save current value |
h_nakanishi | 0:6aabaf00a6e9 | 106 | ledu =!ledu; // Invert LED-User |
h_nakanishi | 0:6aabaf00a6e9 | 107 | } |
h_nakanishi | 0:6aabaf00a6e9 | 108 | |
h_nakanishi | 0:6aabaf00a6e9 | 109 | //----- LED Red ----- |
h_nakanishi | 0:6aabaf00a6e9 | 110 | if(flg_ledr_last != flg_ledr) { // Has LED-Red Flag been Changed? |
h_nakanishi | 0:6aabaf00a6e9 | 111 | flg_ledr_last = flg_ledr; // Save current value |
h_nakanishi | 0:6aabaf00a6e9 | 112 | |
h_nakanishi | 0:6aabaf00a6e9 | 113 | if(cntr == 0) cntrd = 1; // Set Direction(+1) |
h_nakanishi | 0:6aabaf00a6e9 | 114 | if(cntr >= 127) cntrd = -1; // Set Direction(-1) |
h_nakanishi | 0:6aabaf00a6e9 | 115 | cntr += cntrd; // Increment/Decrement Counter |
h_nakanishi | 0:6aabaf00a6e9 | 116 | ledr = (float)cntr / 128; // Set LED-Red Duty |
h_nakanishi | 0:6aabaf00a6e9 | 117 | } |
h_nakanishi | 0:6aabaf00a6e9 | 118 | |
h_nakanishi | 0:6aabaf00a6e9 | 119 | //----- LED Green ----- |
h_nakanishi | 0:6aabaf00a6e9 | 120 | if(flg_ledg_last != flg_ledg) { // Has LED-Green Flag been Changed? |
h_nakanishi | 0:6aabaf00a6e9 | 121 | flg_ledg_last = flg_ledg; // Save current value |
h_nakanishi | 0:6aabaf00a6e9 | 122 | |
h_nakanishi | 0:6aabaf00a6e9 | 123 | if(cntg == 0) cntgd = 1; // Set Direction(+1) |
h_nakanishi | 0:6aabaf00a6e9 | 124 | if(cntg >= 127) cntgd = -1; // Set Direction(-1) |
h_nakanishi | 0:6aabaf00a6e9 | 125 | cntg += cntgd; // Increment/Decrement Counter |
h_nakanishi | 0:6aabaf00a6e9 | 126 | ledg = (float)cntg / 128; // Set LED-Green Duty |
h_nakanishi | 0:6aabaf00a6e9 | 127 | } |
h_nakanishi | 0:6aabaf00a6e9 | 128 | |
h_nakanishi | 0:6aabaf00a6e9 | 129 | //----- LED Blue ----- |
h_nakanishi | 0:6aabaf00a6e9 | 130 | if(flg_ledb_last != flg_ledb) { // Has LED-Blue Flag been Changed? |
h_nakanishi | 0:6aabaf00a6e9 | 131 | flg_ledb_last = flg_ledb; // Save current value |
h_nakanishi | 0:6aabaf00a6e9 | 132 | |
h_nakanishi | 0:6aabaf00a6e9 | 133 | if(cntb == 0) cntbd = 1; // Set Direction(+1) |
h_nakanishi | 0:6aabaf00a6e9 | 134 | if(cntb >= 127) cntbd = -1; // Set Direction(-1) |
h_nakanishi | 0:6aabaf00a6e9 | 135 | cntb += cntbd; // Increment/Decrement Counter |
h_nakanishi | 0:6aabaf00a6e9 | 136 | ledb = (float)cntb / 128; // Set LED-Blue Duty |
h_nakanishi | 0:6aabaf00a6e9 | 137 | } |
h_nakanishi | 0:6aabaf00a6e9 | 138 | |
h_nakanishi | 0:6aabaf00a6e9 | 139 | wait_us(1); |
h_nakanishi | 0:6aabaf00a6e9 | 140 | } |
h_nakanishi | 0:6aabaf00a6e9 | 141 | } |