Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of SevenSegLed by
SevenSegLed.cpp@5:a7ba72bf10ba, 2013-11-30 (annotated)
- Committer:
- suupen
- Date:
- Sat Nov 30 23:59:26 2013 +0000
- Revision:
- 5:a7ba72bf10ba
- Parent:
- 4:33e035f6a337
- Child:
- 6:a1eb5de4146f
I Fixed a bug that was setting display method function of the display was missing.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| suupen | 0:5410d6e2bce7 | 1 | /********************************************************** |
| suupen | 0:5410d6e2bce7 | 2 | |
| suupen | 0:5410d6e2bce7 | 3 | * SevenSegLed.cpp |
| suupen | 0:5410d6e2bce7 | 4 | * dynamic control of seven segment led |
| suupen | 0:5410d6e2bce7 | 5 | * |
| suupen | 0:5410d6e2bce7 | 6 | **********************************************************/ |
| suupen | 0:5410d6e2bce7 | 7 | #define _SEVENSEGLED_C |
| suupen | 0:5410d6e2bce7 | 8 | |
| suupen | 0:5410d6e2bce7 | 9 | #include "types.h" |
| suupen | 0:5410d6e2bce7 | 10 | #include "mbed.h" |
| suupen | 0:5410d6e2bce7 | 11 | #include "SevenSegLed.h" |
| suupen | 0:5410d6e2bce7 | 12 | |
| suupen | 0:5410d6e2bce7 | 13 | |
| suupen | 0:5410d6e2bce7 | 14 | |
| suupen | 0:5410d6e2bce7 | 15 | |
| suupen | 0:5410d6e2bce7 | 16 | /** Create a seven segment led object connected to the specified DigtalOutput pin |
| suupen | 0:5410d6e2bce7 | 17 | */ |
| suupen | 4:33e035f6a337 | 18 | #ifdef USECOM4 |
| suupen | 4:33e035f6a337 | 19 | SevenSegLed::SevenSegLed(uint8_t commonPole, uint8_t smooth, PinName seg_a, PinName seg_b, PinName seg_c, PinName seg_d, PinName seg_e, PinName seg_f, PinName seg_g, PinName seg_p, |
| suupen | 4:33e035f6a337 | 20 | PinName com_1, PinName com_2, PinName com_3, PinName com_4): |
| suupen | 4:33e035f6a337 | 21 | _seg_a(seg_a), _seg_b(seg_b), _seg_c(seg_c), _seg_d(seg_d), _seg_e(seg_e), _seg_f(seg_f), _seg_g(seg_g), _seg_p(seg_p), |
| suupen | 4:33e035f6a337 | 22 | _com_1(com_1), _com_2(com_2), _com_3(com_3), _com_4(com_4){ |
| suupen | 4:33e035f6a337 | 23 | #else // ~USECOM4 |
| suupen | 1:3429249e30f9 | 24 | SevenSegLed::SevenSegLed(uint8_t commonPole, uint8_t smooth, PinName seg_a, PinName seg_b, PinName seg_c, PinName seg_d, PinName seg_e, PinName seg_f, PinName seg_g, PinName seg_p, |
| suupen | 1:3429249e30f9 | 25 | PinName com_1, PinName com_2, PinName com_3, PinName com_4, PinName com_5, PinName com_6, PinName com_7, PinName com_8): |
| suupen | 0:5410d6e2bce7 | 26 | _seg_a(seg_a), _seg_b(seg_b), _seg_c(seg_c), _seg_d(seg_d), _seg_e(seg_e), _seg_f(seg_f), _seg_g(seg_g), _seg_p(seg_p), |
| suupen | 1:3429249e30f9 | 27 | _com_1(com_1), _com_2(com_2), _com_3(com_3), _com_4(com_4), _com_5(com_5), _com_6(com_6), _com_7(com_7), _com_8(com_8){ |
| suupen | 4:33e035f6a337 | 28 | #endif // USECOM4 |
| suupen | 0:5410d6e2bce7 | 29 | |
| suupen | 5:a7ba72bf10ba | 30 | timer.attach_us(this, &SevenSegLed::segmentGrayDataKosin, 10000); // led smooth control 10ms timer inttruupt |
| suupen | 0:5410d6e2bce7 | 31 | |
| suupen | 0:5410d6e2bce7 | 32 | // data table set of Brightness |
| suupen | 0:5410d6e2bce7 | 33 | // DT_pwmGray[] = i ^ 2 |
| suupen | 0:5410d6e2bce7 | 34 | for(uint32_t i = 0; i < Z_grayMax + 1; i++){ |
| suupen | 0:5410d6e2bce7 | 35 | DT_pwmGray[i] = (uint8_t)(((i * i) * Z_pwmGrayMax ) / (Z_grayMax * Z_grayMax)); |
| suupen | 0:5410d6e2bce7 | 36 | } |
| suupen | 0:5410d6e2bce7 | 37 | |
| suupen | 0:5410d6e2bce7 | 38 | // check connect com_x |
| suupen | 0:5410d6e2bce7 | 39 | D_comNull = Z_ketaSuu; |
| suupen | 4:33e035f6a337 | 40 | #ifndef USECOM4 |
| suupen | 1:3429249e30f9 | 41 | if(com_8 == NC){D_comNull--;} |
| suupen | 1:3429249e30f9 | 42 | if(com_7 == NC){D_comNull--;} |
| suupen | 1:3429249e30f9 | 43 | if(com_6 == NC){D_comNull--;} |
| suupen | 1:3429249e30f9 | 44 | if(com_5 == NC){D_comNull--;} |
| suupen | 4:33e035f6a337 | 45 | #endif //USECOM4 |
| suupen | 0:5410d6e2bce7 | 46 | if(com_4 == NC){D_comNull--;} |
| suupen | 0:5410d6e2bce7 | 47 | if(com_3 == NC){D_comNull--;} |
| suupen | 0:5410d6e2bce7 | 48 | if(com_2 == NC){D_comNull--;} |
| suupen | 0:5410d6e2bce7 | 49 | if(com_1 == NC){D_comNull--;} |
| suupen | 0:5410d6e2bce7 | 50 | |
| suupen | 0:5410d6e2bce7 | 51 | // Those who will be reading the LED display |
| suupen | 0:5410d6e2bce7 | 52 | D_smooth = smooth; |
| suupen | 0:5410d6e2bce7 | 53 | |
| suupen | 0:5410d6e2bce7 | 54 | // common and segment pin display data set |
| suupen | 0:5410d6e2bce7 | 55 | if(commonPole == 0){ |
| suupen | 0:5410d6e2bce7 | 56 | // Anode common |
| suupen | 0:5410d6e2bce7 | 57 | D_commonOn = 1; |
| suupen | 0:5410d6e2bce7 | 58 | D_commonOff = 0; |
| suupen | 0:5410d6e2bce7 | 59 | D_segmentOn = 0; |
| suupen | 0:5410d6e2bce7 | 60 | D_segmentOff = 1; |
| suupen | 0:5410d6e2bce7 | 61 | } |
| suupen | 0:5410d6e2bce7 | 62 | else{ |
| suupen | 0:5410d6e2bce7 | 63 | // Cathod common |
| suupen | 0:5410d6e2bce7 | 64 | D_commonOn = 0; |
| suupen | 0:5410d6e2bce7 | 65 | D_commonOff = 1; |
| suupen | 0:5410d6e2bce7 | 66 | D_segmentOn = 1; |
| suupen | 0:5410d6e2bce7 | 67 | D_segmentOff = 0; |
| suupen | 0:5410d6e2bce7 | 68 | } |
| suupen | 0:5410d6e2bce7 | 69 | |
| suupen | 0:5410d6e2bce7 | 70 | } |
| suupen | 0:5410d6e2bce7 | 71 | |
| suupen | 5:a7ba72bf10ba | 72 | /************************************** |
| suupen | 5:a7ba72bf10ba | 73 | * display henka set |
| suupen | 5:a7ba72bf10ba | 74 | * 0:smooth 1:hard |
| suupen | 5:a7ba72bf10ba | 75 | * @SS131130 |
| suupen | 5:a7ba72bf10ba | 76 | **************************************/ |
| suupen | 5:a7ba72bf10ba | 77 | void SevenSegLed::smoothSet(uint8_t smooth){ |
| suupen | 5:a7ba72bf10ba | 78 | D_smooth = smooth; |
| suupen | 5:a7ba72bf10ba | 79 | } |
| suupen | 0:5410d6e2bce7 | 80 | |
| suupen | 0:5410d6e2bce7 | 81 | |
| suupen | 0:5410d6e2bce7 | 82 | /************************************** |
| suupen | 0:5410d6e2bce7 | 83 | * 7segment no gray data kosin |
| suupen | 0:5410d6e2bce7 | 84 | * 100ms goto no syori |
| suupen | 0:5410d6e2bce7 | 85 | **************************************/ |
| suupen | 0:5410d6e2bce7 | 86 | void SevenSegLed::segmentGrayDataKosin(void){ |
| suupen | 0:5410d6e2bce7 | 87 | uint8_t keta; |
| suupen | 0:5410d6e2bce7 | 88 | uint8_t seg; |
| suupen | 0:5410d6e2bce7 | 89 | |
| suupen | 0:5410d6e2bce7 | 90 | uint8_t segMask; |
| suupen | 0:5410d6e2bce7 | 91 | uint8_t segData; |
| suupen | 0:5410d6e2bce7 | 92 | |
| suupen | 0:5410d6e2bce7 | 93 | |
| suupen | 0:5410d6e2bce7 | 94 | //********************************************************* |
| suupen | 0:5410d6e2bce7 | 95 | // 7segment no shuturyoku pattern |
| suupen | 0:5410d6e2bce7 | 96 | //********************************************************* |
| suupen | 0:5410d6e2bce7 | 97 | // seg: a b c d e f g p |
| suupen | 0:5410d6e2bce7 | 98 | // bit: 7 6 5 4 3 2 1 0 |
| suupen | 0:5410d6e2bce7 | 99 | // --------------------- |
| suupen | 0:5410d6e2bce7 | 100 | #define D_0 (0xfc) // 0 1 1 1 1 1 1 0 0 |
| suupen | 0:5410d6e2bce7 | 101 | #define D_1 (0x60) // 1 0 1 1 0 0 0 0 0 |
| suupen | 0:5410d6e2bce7 | 102 | #define D_2 (0xda) // 2 1 1 0 1 1 0 1 0 |
| suupen | 0:5410d6e2bce7 | 103 | #define D_3 (0xf2) // 3 1 1 1 1 0 0 1 0 |
| suupen | 0:5410d6e2bce7 | 104 | #define D_4 (0x66) // 4 0 1 1 0 0 1 1 0 |
| suupen | 0:5410d6e2bce7 | 105 | #define D_5 (0xb6) // 5 1 0 1 1 0 1 1 0 |
| suupen | 0:5410d6e2bce7 | 106 | #define D_6 (0xbe) // 6 1 0 1 1 1 1 1 0 |
| suupen | 0:5410d6e2bce7 | 107 | #define D_7 (0xe4) // 7 1 1 1 0 0 1 0 0 |
| suupen | 0:5410d6e2bce7 | 108 | #define D_8 (0xfe) // 8 1 1 1 1 1 1 1 0 |
| suupen | 0:5410d6e2bce7 | 109 | #define D_9 (0xf6) // 9 1 1 1 1 0 1 1 0 |
| suupen | 0:5410d6e2bce7 | 110 | #define D_A (0xee) // A 1 1 1 0 1 1 1 0 |
| suupen | 0:5410d6e2bce7 | 111 | #define D_b (0x3e) // b 0 0 1 1 1 1 1 0 |
| suupen | 0:5410d6e2bce7 | 112 | #define D_C (0x9c) // C 1 0 0 1 1 1 0 0 |
| suupen | 0:5410d6e2bce7 | 113 | #define D_d (0x7a) // d 0 1 1 1 1 0 1 0 |
| suupen | 0:5410d6e2bce7 | 114 | #define D_E (0x9e) // E 1 0 0 1 1 1 1 0 |
| suupen | 0:5410d6e2bce7 | 115 | #define D_F (0x8e) // F 1 0 0 0 1 1 1 0 |
| suupen | 0:5410d6e2bce7 | 116 | #define D_NULL (0x00) // NULL 0 0 0 0 0 0 0 0 |
| suupen | 0:5410d6e2bce7 | 117 | // (No indication) |
| suupen | 0:5410d6e2bce7 | 118 | |
| suupen | 0:5410d6e2bce7 | 119 | |
| suupen | 0:5410d6e2bce7 | 120 | const unsigned char DT_segData[17] = {D_0, D_1, D_2, D_3, D_4, D_5, D_6, D_7, D_8, D_9, D_A, D_b, D_C, D_d, D_E, D_F, D_NULL}; |
| suupen | 0:5410d6e2bce7 | 121 | uint8_t work; |
| suupen | 0:5410d6e2bce7 | 122 | |
| suupen | 0:5410d6e2bce7 | 123 | for(keta = 0; keta < Z_ketaSuu; keta++){ |
| suupen | 0:5410d6e2bce7 | 124 | // number data set |
| suupen | 0:5410d6e2bce7 | 125 | work = D_7seg[keta]; |
| suupen | 0:5410d6e2bce7 | 126 | if(work > 0x10){work = 0x10;} // error data then NULL |
| suupen | 0:5410d6e2bce7 | 127 | segData = DT_segData[work]; |
| suupen | 0:5410d6e2bce7 | 128 | |
| suupen | 0:5410d6e2bce7 | 129 | // dot data set |
| suupen | 0:5410d6e2bce7 | 130 | if(D_dot[keta] != 0){segData |= 0x01;} |
| suupen | 0:5410d6e2bce7 | 131 | |
| suupen | 0:5410d6e2bce7 | 132 | // segment data set |
| suupen | 0:5410d6e2bce7 | 133 | segMask = 0x80; |
| suupen | 0:5410d6e2bce7 | 134 | |
| suupen | 0:5410d6e2bce7 | 135 | for(seg = 0; seg < Z_segSuu; seg++){ |
| suupen | 0:5410d6e2bce7 | 136 | if(D_smooth == Z_smooth){ |
| suupen | 0:5410d6e2bce7 | 137 | // LED display Smooth |
| suupen | 0:5410d6e2bce7 | 138 | if((segData & segMask) != 0){ |
| suupen | 0:5410d6e2bce7 | 139 | // segment tento |
| suupen | 0:5410d6e2bce7 | 140 | if(D_7segGray[keta][seg] < Z_grayMax){D_7segGray[keta][seg]++;} |
| suupen | 0:5410d6e2bce7 | 141 | } |
| suupen | 0:5410d6e2bce7 | 142 | else{ |
| suupen | 0:5410d6e2bce7 | 143 | // segment syoto |
| suupen | 0:5410d6e2bce7 | 144 | if(D_7segGray[keta][seg] > 0){D_7segGray[keta][seg]--;} |
| suupen | 0:5410d6e2bce7 | 145 | } |
| suupen | 0:5410d6e2bce7 | 146 | segMask = segMask >> 1; |
| suupen | 0:5410d6e2bce7 | 147 | } |
| suupen | 0:5410d6e2bce7 | 148 | else{ |
| suupen | 0:5410d6e2bce7 | 149 | // LED display Hard |
| suupen | 0:5410d6e2bce7 | 150 | if((segData & segMask) != 0){ |
| suupen | 0:5410d6e2bce7 | 151 | // segment tento |
| suupen | 0:5410d6e2bce7 | 152 | D_7segGray[keta][seg] = Z_pwmGrayMax; |
| suupen | 0:5410d6e2bce7 | 153 | } |
| suupen | 0:5410d6e2bce7 | 154 | else{ |
| suupen | 0:5410d6e2bce7 | 155 | // segment syoto |
| suupen | 0:5410d6e2bce7 | 156 | D_7segGray[keta][seg] = 0; |
| suupen | 0:5410d6e2bce7 | 157 | } |
| suupen | 0:5410d6e2bce7 | 158 | segMask = segMask >> 1; |
| suupen | 0:5410d6e2bce7 | 159 | } |
| suupen | 0:5410d6e2bce7 | 160 | } |
| suupen | 0:5410d6e2bce7 | 161 | } |
| suupen | 0:5410d6e2bce7 | 162 | } |
| suupen | 0:5410d6e2bce7 | 163 | |
| suupen | 0:5410d6e2bce7 | 164 | |
| suupen | 0:5410d6e2bce7 | 165 | /************************************** |
| suupen | 0:5410d6e2bce7 | 166 | * main |
| suupen | 0:5410d6e2bce7 | 167 | **************************************/ |
| suupen | 0:5410d6e2bce7 | 168 | void SevenSegLed::SevenSegLed_main(uint8_t* number, uint8_t* dot) { |
| suupen | 0:5410d6e2bce7 | 169 | |
| suupen | 0:5410d6e2bce7 | 170 | for(uint8_t i = 0; i < Z_ketaSuu; i++){ |
| suupen | 0:5410d6e2bce7 | 171 | D_7seg[i] = number[i]; |
| suupen | 0:5410d6e2bce7 | 172 | D_dot[i] = dot[i]; |
| suupen | 0:5410d6e2bce7 | 173 | } |
| suupen | 0:5410d6e2bce7 | 174 | |
| suupen | 0:5410d6e2bce7 | 175 | |
| suupen | 0:5410d6e2bce7 | 176 | // dynamic shuturyoku shori |
| suupen | 5:a7ba72bf10ba | 177 | //segmentGrayDataKosin(); |
| suupen | 0:5410d6e2bce7 | 178 | output(); |
| suupen | 0:5410d6e2bce7 | 179 | } |
| suupen | 0:5410d6e2bce7 | 180 | |
| suupen | 0:5410d6e2bce7 | 181 | |
| suupen | 0:5410d6e2bce7 | 182 | /************************************** |
| suupen | 0:5410d6e2bce7 | 183 | * comAllClear |
| suupen | 0:5410d6e2bce7 | 184 | * |
| suupen | 0:5410d6e2bce7 | 185 | * common pin o subete OFF suru |
| suupen | 0:5410d6e2bce7 | 186 | **************************************/ |
| suupen | 0:5410d6e2bce7 | 187 | void SevenSegLed::comAllClear(void){ |
| suupen | 0:5410d6e2bce7 | 188 | |
| suupen | 0:5410d6e2bce7 | 189 | switch (D_comNull){ |
| suupen | 4:33e035f6a337 | 190 | #ifndef USECOM4 |
| suupen | 1:3429249e30f9 | 191 | case 8: // com_1 - com_8is all connect |
| suupen | 1:3429249e30f9 | 192 | _com_8 = D_commonOff; |
| suupen | 1:3429249e30f9 | 193 | //break; |
| suupen | 1:3429249e30f9 | 194 | case 7: // com_8 Null |
| suupen | 1:3429249e30f9 | 195 | _com_7 = D_commonOff; |
| suupen | 1:3429249e30f9 | 196 | //break; |
| suupen | 1:3429249e30f9 | 197 | case 6: // com_7 Null |
| suupen | 1:3429249e30f9 | 198 | _com_6 = D_commonOff; |
| suupen | 1:3429249e30f9 | 199 | //break; |
| suupen | 1:3429249e30f9 | 200 | case 5: // com_6 Null |
| suupen | 1:3429249e30f9 | 201 | _com_5 = D_commonOff; |
| suupen | 1:3429249e30f9 | 202 | //break; |
| suupen | 4:33e035f6a337 | 203 | #endif // USECOM4 |
| suupen | 1:3429249e30f9 | 204 | case 4: // com_5 Null |
| suupen | 0:5410d6e2bce7 | 205 | _com_4 = D_commonOff; |
| suupen | 1:3429249e30f9 | 206 | //break; |
| suupen | 0:5410d6e2bce7 | 207 | case 3: // com_4 Null |
| suupen | 0:5410d6e2bce7 | 208 | _com_3 = D_commonOff; |
| suupen | 0:5410d6e2bce7 | 209 | // break; |
| suupen | 0:5410d6e2bce7 | 210 | case 2: // com_3 Null |
| suupen | 0:5410d6e2bce7 | 211 | _com_2 = D_commonOff; |
| suupen | 0:5410d6e2bce7 | 212 | //break; |
| suupen | 0:5410d6e2bce7 | 213 | case 1: // com_2 Null |
| suupen | 0:5410d6e2bce7 | 214 | _com_1 = D_commonOff; |
| suupen | 0:5410d6e2bce7 | 215 | //break; |
| suupen | 0:5410d6e2bce7 | 216 | case 0: // com_1 Null |
| suupen | 0:5410d6e2bce7 | 217 | // nothing |
| suupen | 0:5410d6e2bce7 | 218 | break; |
| suupen | 0:5410d6e2bce7 | 219 | default: |
| suupen | 0:5410d6e2bce7 | 220 | // nothing |
| suupen | 0:5410d6e2bce7 | 221 | break; |
| suupen | 0:5410d6e2bce7 | 222 | } |
| suupen | 0:5410d6e2bce7 | 223 | } |
| suupen | 0:5410d6e2bce7 | 224 | |
| suupen | 0:5410d6e2bce7 | 225 | /************************************** |
| suupen | 0:5410d6e2bce7 | 226 | * segAllClear |
| suupen | 0:5410d6e2bce7 | 227 | * |
| suupen | 0:5410d6e2bce7 | 228 | * segment pin o subete OFF suru |
| suupen | 0:5410d6e2bce7 | 229 | **************************************/ |
| suupen | 0:5410d6e2bce7 | 230 | void SevenSegLed::segAllClear(void){ |
| suupen | 0:5410d6e2bce7 | 231 | _seg_a = D_segmentOff; |
| suupen | 0:5410d6e2bce7 | 232 | _seg_b = D_segmentOff; |
| suupen | 0:5410d6e2bce7 | 233 | _seg_c = D_segmentOff; |
| suupen | 0:5410d6e2bce7 | 234 | _seg_d = D_segmentOff; |
| suupen | 0:5410d6e2bce7 | 235 | _seg_e = D_segmentOff; |
| suupen | 0:5410d6e2bce7 | 236 | _seg_f = D_segmentOff; |
| suupen | 0:5410d6e2bce7 | 237 | _seg_p = D_segmentOff; |
| suupen | 0:5410d6e2bce7 | 238 | } |
| suupen | 0:5410d6e2bce7 | 239 | |
| suupen | 0:5410d6e2bce7 | 240 | /************************************** |
| suupen | 0:5410d6e2bce7 | 241 | * segDataSet |
| suupen | 0:5410d6e2bce7 | 242 | * |
| suupen | 0:5410d6e2bce7 | 243 | * segment pin ni shuturyoku data o settei |
| suupen | 0:5410d6e2bce7 | 244 | **************************************/ |
| suupen | 0:5410d6e2bce7 | 245 | void SevenSegLed::segDataSet(uint8_t keta){ |
| suupen | 0:5410d6e2bce7 | 246 | |
| suupen | 0:5410d6e2bce7 | 247 | for(uint8_t i = 0; i < Z_pwmGrayMax + 1; i++){ |
| suupen | 0:5410d6e2bce7 | 248 | if(DT_pwmGray[D_7segGray[keta][0]] <= i){_seg_a = D_segmentOff;}else{_seg_a = D_segmentOn;} |
| suupen | 0:5410d6e2bce7 | 249 | if(DT_pwmGray[D_7segGray[keta][1]] <= i){_seg_b = D_segmentOff;}else{_seg_b = D_segmentOn;} |
| suupen | 0:5410d6e2bce7 | 250 | if(DT_pwmGray[D_7segGray[keta][2]] <= i){_seg_c = D_segmentOff;}else{_seg_c = D_segmentOn;} |
| suupen | 0:5410d6e2bce7 | 251 | if(DT_pwmGray[D_7segGray[keta][3]] <= i){_seg_d = D_segmentOff;}else{_seg_d = D_segmentOn;} |
| suupen | 0:5410d6e2bce7 | 252 | if(DT_pwmGray[D_7segGray[keta][4]] <= i){_seg_e = D_segmentOff;}else{_seg_e = D_segmentOn;} |
| suupen | 0:5410d6e2bce7 | 253 | if(DT_pwmGray[D_7segGray[keta][5]] <= i){_seg_f = D_segmentOff;}else{_seg_f = D_segmentOn;} |
| suupen | 0:5410d6e2bce7 | 254 | if(DT_pwmGray[D_7segGray[keta][6]] <= i){_seg_g = D_segmentOff;}else{_seg_g = D_segmentOn;} |
| suupen | 0:5410d6e2bce7 | 255 | if(DT_pwmGray[D_7segGray[keta][7]] <= i){_seg_p = D_segmentOff;}else{_seg_p = D_segmentOn;} |
| suupen | 0:5410d6e2bce7 | 256 | |
| suupen | 0:5410d6e2bce7 | 257 | } |
| suupen | 0:5410d6e2bce7 | 258 | } |
| suupen | 0:5410d6e2bce7 | 259 | |
| suupen | 0:5410d6e2bce7 | 260 | /************************************** |
| suupen | 0:5410d6e2bce7 | 261 | * output |
| suupen | 0:5410d6e2bce7 | 262 | * |
| suupen | 0:5410d6e2bce7 | 263 | * dynamic dosa saseru. |
| suupen | 0:5410d6e2bce7 | 264 | * kono kansu wo jiikou suru tabi ni common pin o kirikaeru |
| suupen | 0:5410d6e2bce7 | 265 | **************************************/ |
| suupen | 0:5410d6e2bce7 | 266 | void SevenSegLed::output(void){ |
| suupen | 0:5410d6e2bce7 | 267 | static uint8_t M_seg = 0; |
| suupen | 0:5410d6e2bce7 | 268 | |
| suupen | 0:5410d6e2bce7 | 269 | if(M_seg >= D_comNull){M_seg = 0;} |
| suupen | 0:5410d6e2bce7 | 270 | |
| suupen | 4:33e035f6a337 | 271 | //com, seg syokika |
| suupen | 0:5410d6e2bce7 | 272 | comAllClear(); |
| suupen | 0:5410d6e2bce7 | 273 | segAllClear(); |
| suupen | 4:33e035f6a337 | 274 | |
| suupen | 0:5410d6e2bce7 | 275 | // common output |
| suupen | 0:5410d6e2bce7 | 276 | if(D_comNull != 0){ |
| suupen | 0:5410d6e2bce7 | 277 | // If the terminal output processing |
| suupen | 0:5410d6e2bce7 | 278 | switch(M_seg){ |
| suupen | 0:5410d6e2bce7 | 279 | case 0: |
| suupen | 0:5410d6e2bce7 | 280 | _com_1 = D_commonOn; |
| suupen | 0:5410d6e2bce7 | 281 | break; |
| suupen | 0:5410d6e2bce7 | 282 | case 1: |
| suupen | 0:5410d6e2bce7 | 283 | _com_2 = D_commonOn; |
| suupen | 0:5410d6e2bce7 | 284 | break; |
| suupen | 0:5410d6e2bce7 | 285 | case 2: |
| suupen | 0:5410d6e2bce7 | 286 | _com_3 = D_commonOn; |
| suupen | 0:5410d6e2bce7 | 287 | break; |
| suupen | 0:5410d6e2bce7 | 288 | case 3: |
| suupen | 0:5410d6e2bce7 | 289 | _com_4 = D_commonOn; |
| suupen | 1:3429249e30f9 | 290 | break; |
| suupen | 4:33e035f6a337 | 291 | #ifndef USECOM4 |
| suupen | 1:3429249e30f9 | 292 | case 4: |
| suupen | 1:3429249e30f9 | 293 | _com_5 = D_commonOn; |
| suupen | 1:3429249e30f9 | 294 | break; |
| suupen | 1:3429249e30f9 | 295 | case 5: |
| suupen | 1:3429249e30f9 | 296 | _com_6 = D_commonOn; |
| suupen | 1:3429249e30f9 | 297 | break; |
| suupen | 1:3429249e30f9 | 298 | case 6: |
| suupen | 1:3429249e30f9 | 299 | _com_7 = D_commonOn; |
| suupen | 1:3429249e30f9 | 300 | break; |
| suupen | 1:3429249e30f9 | 301 | case 7: |
| suupen | 1:3429249e30f9 | 302 | _com_8 = D_commonOn; |
| suupen | 1:3429249e30f9 | 303 | break; |
| suupen | 4:33e035f6a337 | 304 | #endif // USECOM4 |
| suupen | 0:5410d6e2bce7 | 305 | default: |
| suupen | 0:5410d6e2bce7 | 306 | break; |
| suupen | 0:5410d6e2bce7 | 307 | } |
| suupen | 0:5410d6e2bce7 | 308 | } |
| suupen | 0:5410d6e2bce7 | 309 | |
| suupen | 0:5410d6e2bce7 | 310 | // segmant output |
| suupen | 0:5410d6e2bce7 | 311 | if(M_seg < Z_ketaSuu){ |
| suupen | 0:5410d6e2bce7 | 312 | segDataSet(M_seg); |
| suupen | 0:5410d6e2bce7 | 313 | } |
| suupen | 0:5410d6e2bce7 | 314 | |
| suupen | 0:5410d6e2bce7 | 315 | |
| suupen | 4:33e035f6a337 | 316 | // com, seg syokika |
| suupen | 4:33e035f6a337 | 317 | // comAllClear(); |
| suupen | 4:33e035f6a337 | 318 | // segAllClear(); |
| suupen | 0:5410d6e2bce7 | 319 | M_seg++; |
| suupen | 4:33e035f6a337 | 320 | |
| suupen | 0:5410d6e2bce7 | 321 | } |
| suupen | 5:a7ba72bf10ba | 322 | |
| suupen | 5:a7ba72bf10ba | 323 |
