William Etter / Mbed 2 deprecated LEDTable

Dependencies:   mbed

Committer:
BillVT
Date:
Tue Apr 03 21:14:40 2012 +0000
Revision:
0:848b8f66e645
Current version of LED Table

Who changed what in which revision?

UserRevisionLine numberNew contents of line
BillVT 0:848b8f66e645 1
BillVT 0:848b8f66e645 2 /* Useful Table Functions*/
BillVT 0:848b8f66e645 3
BillVT 0:848b8f66e645 4 /*************************************************************************
BillVT 0:848b8f66e645 5 Function Variables
BillVT 0:848b8f66e645 6 **************************************************************************/
BillVT 0:848b8f66e645 7 int clear_time;
BillVT 0:848b8f66e645 8 char clear_enabled;
BillVT 0:848b8f66e645 9 char current_clear_function;
BillVT 0:848b8f66e645 10
BillVT 0:848b8f66e645 11 /*************************************************************************
BillVT 0:848b8f66e645 12 Function Headers
BillVT 0:848b8f66e645 13 **************************************************************************/
BillVT 0:848b8f66e645 14 int get_next_function(char current);
BillVT 0:848b8f66e645 15 void enableLEDs(void);
BillVT 0:848b8f66e645 16 void disableLEDs(void);
BillVT 0:848b8f66e645 17 void clearPositive(void);
BillVT 0:848b8f66e645 18 void clearNegative(void);
BillVT 0:848b8f66e645 19 void clearValues(void);
BillVT 0:848b8f66e645 20 void clearLEDs(void);
BillVT 0:848b8f66e645 21 void clearArray(void);
BillVT 0:848b8f66e645 22 void clearFunction(void);
BillVT 0:848b8f66e645 23 void clear_dissolve(void);
BillVT 0:848b8f66e645 24 int sum_table(void);
BillVT 0:848b8f66e645 25 void initTable(void);
BillVT 0:848b8f66e645 26 void displayTable(void);
BillVT 0:848b8f66e645 27
BillVT 0:848b8f66e645 28 int get_next_functon(char current){
BillVT 0:848b8f66e645 29 char function_size = sizeof(function_enable)/sizeof(char);
BillVT 0:848b8f66e645 30 current += 1;
BillVT 0:848b8f66e645 31 while((current< function_size) && (function_enable[current] == 0)){
BillVT 0:848b8f66e645 32 current +=1;
BillVT 0:848b8f66e645 33 }
BillVT 0:848b8f66e645 34 if(function_enable[current] == 1){
BillVT 0:848b8f66e645 35 return current;
BillVT 0:848b8f66e645 36 }
BillVT 0:848b8f66e645 37 else{
BillVT 0:848b8f66e645 38 current = 0;
BillVT 0:848b8f66e645 39 while((current< function_size) && (function_enable[current] == 0)){
BillVT 0:848b8f66e645 40 current +=1;
BillVT 0:848b8f66e645 41 }
BillVT 0:848b8f66e645 42 return current;
BillVT 0:848b8f66e645 43 }
BillVT 0:848b8f66e645 44 }
BillVT 0:848b8f66e645 45
BillVT 0:848b8f66e645 46 void enableLEDs(void){
BillVT 0:848b8f66e645 47 posOE = 0;
BillVT 0:848b8f66e645 48 negOE = 0;
BillVT 0:848b8f66e645 49 }
BillVT 0:848b8f66e645 50
BillVT 0:848b8f66e645 51 void disableLEDs(void){
BillVT 0:848b8f66e645 52 posOE = 1;
BillVT 0:848b8f66e645 53 negOE = 1;
BillVT 0:848b8f66e645 54 }
BillVT 0:848b8f66e645 55
BillVT 0:848b8f66e645 56 void clearPositive(void){
BillVT 0:848b8f66e645 57 posC0 = 0;
BillVT 0:848b8f66e645 58 posC1 = 0;
BillVT 0:848b8f66e645 59 posC2 = 0;
BillVT 0:848b8f66e645 60 posC3 = 0;
BillVT 0:848b8f66e645 61 posC4 = 0;
BillVT 0:848b8f66e645 62 posC5 = 0;
BillVT 0:848b8f66e645 63 posC6 = 0;
BillVT 0:848b8f66e645 64 posC7 = 0;
BillVT 0:848b8f66e645 65 }
BillVT 0:848b8f66e645 66
BillVT 0:848b8f66e645 67 void clearNegative(void){
BillVT 0:848b8f66e645 68 negC0 = 0;
BillVT 0:848b8f66e645 69 negC1 = 0;
BillVT 0:848b8f66e645 70 negC2 = 0;
BillVT 0:848b8f66e645 71 negC3 = 0;
BillVT 0:848b8f66e645 72 negC4 = 0;
BillVT 0:848b8f66e645 73 negC5 = 0;
BillVT 0:848b8f66e645 74 negC6 = 0;
BillVT 0:848b8f66e645 75 negC7 = 0;
BillVT 0:848b8f66e645 76 }
BillVT 0:848b8f66e645 77
BillVT 0:848b8f66e645 78 void clearValues(void){
BillVT 0:848b8f66e645 79 clearPositive();
BillVT 0:848b8f66e645 80 clearNegative();
BillVT 0:848b8f66e645 81 }
BillVT 0:848b8f66e645 82
BillVT 0:848b8f66e645 83
BillVT 0:848b8f66e645 84 void clearLEDs(void){
BillVT 0:848b8f66e645 85 clearValues();
BillVT 0:848b8f66e645 86
BillVT 0:848b8f66e645 87 posM0 = 0;
BillVT 0:848b8f66e645 88 posM1 = 0;
BillVT 0:848b8f66e645 89 negM0 = 0;
BillVT 0:848b8f66e645 90 negM1 = 0;
BillVT 0:848b8f66e645 91
BillVT 0:848b8f66e645 92 posM0 = 1;
BillVT 0:848b8f66e645 93 posM1 = 0;
BillVT 0:848b8f66e645 94
BillVT 0:848b8f66e645 95 posM0 = 0;
BillVT 0:848b8f66e645 96 posM1 = 1;
BillVT 0:848b8f66e645 97
BillVT 0:848b8f66e645 98 posM0 = 1;
BillVT 0:848b8f66e645 99 posM1 = 1;
BillVT 0:848b8f66e645 100
BillVT 0:848b8f66e645 101 posM0 = 0;
BillVT 0:848b8f66e645 102 posM1 = 0;
BillVT 0:848b8f66e645 103
BillVT 0:848b8f66e645 104 negM0 = 1;
BillVT 0:848b8f66e645 105 negM1 = 0;
BillVT 0:848b8f66e645 106
BillVT 0:848b8f66e645 107 negM0 = 0;
BillVT 0:848b8f66e645 108 negM1 = 1;
BillVT 0:848b8f66e645 109
BillVT 0:848b8f66e645 110 negM0 = 1;
BillVT 0:848b8f66e645 111 negM1 = 1;
BillVT 0:848b8f66e645 112
BillVT 0:848b8f66e645 113 negM0 = 0;
BillVT 0:848b8f66e645 114 negM1 = 0;
BillVT 0:848b8f66e645 115 }
BillVT 0:848b8f66e645 116
BillVT 0:848b8f66e645 117 void clearArray(void){
BillVT 0:848b8f66e645 118 for(int i=0; i<16; i++){
BillVT 0:848b8f66e645 119 for(int j=0; j<32; j++){
BillVT 0:848b8f66e645 120 ledtable[i][j]=0;
BillVT 0:848b8f66e645 121 }
BillVT 0:848b8f66e645 122 }
BillVT 0:848b8f66e645 123 }
BillVT 0:848b8f66e645 124
BillVT 0:848b8f66e645 125
BillVT 0:848b8f66e645 126
BillVT 0:848b8f66e645 127 void clearFunction(void){
BillVT 0:848b8f66e645 128 if(!clear_enabled){
BillVT 0:848b8f66e645 129 // Pick Random Clear Function
BillVT 0:848b8f66e645 130 current_clear_function = rand()%(sizeof(function_enable)/sizeof(char));
BillVT 0:848b8f66e645 131 while(clear_function_enable[current_clear_function] != 1){
BillVT 0:848b8f66e645 132 current_clear_function = rand()%(sizeof(function_enable)/sizeof(char));
BillVT 0:848b8f66e645 133 }
BillVT 0:848b8f66e645 134 // Enable clear function
BillVT 0:848b8f66e645 135 clear_enabled = 1;
BillVT 0:848b8f66e645 136
BillVT 0:848b8f66e645 137 // Start Clear Time
BillVT 0:848b8f66e645 138 clear_time = tabletimer.read_ms();
BillVT 0:848b8f66e645 139 }
BillVT 0:848b8f66e645 140 else{
BillVT 0:848b8f66e645 141 // Run Clear Function
BillVT 0:848b8f66e645 142 switch (current_clear_function) {
BillVT 0:848b8f66e645 143 case 0:
BillVT 0:848b8f66e645 144 // Current: Dissolve
BillVT 0:848b8f66e645 145 clear_dissolve();
BillVT 0:848b8f66e645 146 break;
BillVT 0:848b8f66e645 147 case 1:
BillVT 0:848b8f66e645 148 break;
BillVT 0:848b8f66e645 149 case 2:
BillVT 0:848b8f66e645 150 break;
BillVT 0:848b8f66e645 151 default:
BillVT 0:848b8f66e645 152 // Shouldn't get in here...
BillVT 0:848b8f66e645 153 break;
BillVT 0:848b8f66e645 154 }
BillVT 0:848b8f66e645 155
BillVT 0:848b8f66e645 156
BillVT 0:848b8f66e645 157 // If board is empty, disable clear function and move to next function
BillVT 0:848b8f66e645 158 if(sum_table() == 0){
BillVT 0:848b8f66e645 159 clear_enabled = 0;
BillVT 0:848b8f66e645 160 current_function = next_function;
BillVT 0:848b8f66e645 161 tabletimeseconds = tabletimer.read();
BillVT 0:848b8f66e645 162 }
BillVT 0:848b8f66e645 163 }
BillVT 0:848b8f66e645 164 }
BillVT 0:848b8f66e645 165
BillVT 0:848b8f66e645 166
BillVT 0:848b8f66e645 167 void clear_dissolve(void){
BillVT 0:848b8f66e645 168 int row;
BillVT 0:848b8f66e645 169 int col;
BillVT 0:848b8f66e645 170
BillVT 0:848b8f66e645 171 if((tabletimer.read_ms() - clear_time)>dissolve_time){
BillVT 0:848b8f66e645 172 // Run Dissolve
BillVT 0:848b8f66e645 173 do{
BillVT 0:848b8f66e645 174 row = rand()%16;
BillVT 0:848b8f66e645 175 col = rand()%32;
BillVT 0:848b8f66e645 176 }
BillVT 0:848b8f66e645 177 while(ledtable[row][col] < 1);
BillVT 0:848b8f66e645 178
BillVT 0:848b8f66e645 179 // Clear current pixel
BillVT 0:848b8f66e645 180 ledtable[row][col] = 0;
BillVT 0:848b8f66e645 181 }
BillVT 0:848b8f66e645 182 }
BillVT 0:848b8f66e645 183
BillVT 0:848b8f66e645 184 int sum_table(void){
BillVT 0:848b8f66e645 185 int total = 0;
BillVT 0:848b8f66e645 186 for(int i=0; i<16; i++){
BillVT 0:848b8f66e645 187 for(int j=0; j<32; j++){
BillVT 0:848b8f66e645 188 total += ledtable[i][j];
BillVT 0:848b8f66e645 189 }
BillVT 0:848b8f66e645 190 }
BillVT 0:848b8f66e645 191 return total;
BillVT 0:848b8f66e645 192 }
BillVT 0:848b8f66e645 193
BillVT 0:848b8f66e645 194 void initTable(void){
BillVT 0:848b8f66e645 195 // Start Timer
BillVT 0:848b8f66e645 196 tabletimer.start();
BillVT 0:848b8f66e645 197 tabletimeseconds = tabletimer.read();
BillVT 0:848b8f66e645 198 // Seed Random Number Generator with Current Time
BillVT 0:848b8f66e645 199 srand(tabletimeseconds);
BillVT 0:848b8f66e645 200
BillVT 0:848b8f66e645 201 disableLEDs();
BillVT 0:848b8f66e645 202 clearArray();
BillVT 0:848b8f66e645 203 clearLEDs();
BillVT 0:848b8f66e645 204 }
BillVT 0:848b8f66e645 205
BillVT 0:848b8f66e645 206 void displayTable(void){
BillVT 0:848b8f66e645 207 clearLEDs();
BillVT 0:848b8f66e645 208 int rowneg;
BillVT 0:848b8f66e645 209 for(int i = 1; i<=60;i++){
BillVT 0:848b8f66e645 210 for(rowneg = 0; rowneg < 8; rowneg ++){
BillVT 0:848b8f66e645 211 // Clear All Values
BillVT 0:848b8f66e645 212 clearValues();
BillVT 0:848b8f66e645 213
BillVT 0:848b8f66e645 214 // ******** Turn on Lights for Each Section ******** //
BillVT 0:848b8f66e645 215 // Top Left Corner (1-,3+)
BillVT 0:848b8f66e645 216 posM0 = 1;
BillVT 0:848b8f66e645 217 posM1 = 1;
BillVT 0:848b8f66e645 218 negM0 = 1;
BillVT 0:848b8f66e645 219 negM1 = 0;
BillVT 0:848b8f66e645 220 // Set Negative Value
BillVT 0:848b8f66e645 221 switch (rowneg){
BillVT 0:848b8f66e645 222 case 0:
BillVT 0:848b8f66e645 223 negC0 = 1;
BillVT 0:848b8f66e645 224 break;
BillVT 0:848b8f66e645 225 case 1:
BillVT 0:848b8f66e645 226 negC1 = 1;
BillVT 0:848b8f66e645 227 break;
BillVT 0:848b8f66e645 228 case 2:
BillVT 0:848b8f66e645 229 negC2 = 1;
BillVT 0:848b8f66e645 230 break;
BillVT 0:848b8f66e645 231 case 3:
BillVT 0:848b8f66e645 232 negC3 = 1;
BillVT 0:848b8f66e645 233 break;
BillVT 0:848b8f66e645 234 case 4:
BillVT 0:848b8f66e645 235 negC4 = 1;
BillVT 0:848b8f66e645 236 break;
BillVT 0:848b8f66e645 237 case 5:
BillVT 0:848b8f66e645 238 negC5 = 1;
BillVT 0:848b8f66e645 239 break;
BillVT 0:848b8f66e645 240 case 6:
BillVT 0:848b8f66e645 241 negC6 = 1;
BillVT 0:848b8f66e645 242 break;
BillVT 0:848b8f66e645 243 case 7:
BillVT 0:848b8f66e645 244 negC7 = 1;
BillVT 0:848b8f66e645 245 break;
BillVT 0:848b8f66e645 246 }
BillVT 0:848b8f66e645 247 // Set Positive Value
BillVT 0:848b8f66e645 248 if(ledtable[rowneg][0] >= i)
BillVT 0:848b8f66e645 249 posC0 = 1;
BillVT 0:848b8f66e645 250 if(ledtable[rowneg][1] >= i)
BillVT 0:848b8f66e645 251 posC1 = 1;
BillVT 0:848b8f66e645 252 if(ledtable[rowneg][2] >= i)
BillVT 0:848b8f66e645 253 posC2 = 1;
BillVT 0:848b8f66e645 254 if(ledtable[rowneg][3] >= i)
BillVT 0:848b8f66e645 255 posC3 = 1;
BillVT 0:848b8f66e645 256 if(ledtable[rowneg][4] >= i)
BillVT 0:848b8f66e645 257 posC4 = 1;
BillVT 0:848b8f66e645 258 if(ledtable[rowneg][5] >= i)
BillVT 0:848b8f66e645 259 posC5 = 1;
BillVT 0:848b8f66e645 260 if(ledtable[rowneg][6] >= i)
BillVT 0:848b8f66e645 261 posC6 = 1;
BillVT 0:848b8f66e645 262 if(ledtable[rowneg][7] >= i)
BillVT 0:848b8f66e645 263 posC7 = 1;
BillVT 0:848b8f66e645 264 // Load Values in Latches and Clear Values to Prevent Loading into Other Latches
BillVT 0:848b8f66e645 265 posM0 = 0;
BillVT 0:848b8f66e645 266 posM1 = 1;
BillVT 0:848b8f66e645 267 negM0 = 0;
BillVT 0:848b8f66e645 268 negM1 = 0;
BillVT 0:848b8f66e645 269 clearValues();
BillVT 0:848b8f66e645 270
BillVT 0:848b8f66e645 271 // Top Mid Left Corner (1-,2+)
BillVT 0:848b8f66e645 272 posM0 = 0;
BillVT 0:848b8f66e645 273 posM1 = 1;
BillVT 0:848b8f66e645 274 negM0 = 1;
BillVT 0:848b8f66e645 275 negM1 = 0;
BillVT 0:848b8f66e645 276 // Set Negative Value
BillVT 0:848b8f66e645 277 switch (rowneg){
BillVT 0:848b8f66e645 278 case 0:
BillVT 0:848b8f66e645 279 negC0 = 1;
BillVT 0:848b8f66e645 280 break;
BillVT 0:848b8f66e645 281 case 1:
BillVT 0:848b8f66e645 282 negC1 = 1;
BillVT 0:848b8f66e645 283 break;
BillVT 0:848b8f66e645 284 case 2:
BillVT 0:848b8f66e645 285 negC2 = 1;
BillVT 0:848b8f66e645 286 break;
BillVT 0:848b8f66e645 287 case 3:
BillVT 0:848b8f66e645 288 negC3 = 1;
BillVT 0:848b8f66e645 289 break;
BillVT 0:848b8f66e645 290 case 4:
BillVT 0:848b8f66e645 291 negC4 = 1;
BillVT 0:848b8f66e645 292 break;
BillVT 0:848b8f66e645 293 case 5:
BillVT 0:848b8f66e645 294 negC5 = 1;
BillVT 0:848b8f66e645 295 break;
BillVT 0:848b8f66e645 296 case 6:
BillVT 0:848b8f66e645 297 negC6 = 1;
BillVT 0:848b8f66e645 298 break;
BillVT 0:848b8f66e645 299 case 7:
BillVT 0:848b8f66e645 300 negC7 = 0;
BillVT 0:848b8f66e645 301 break;
BillVT 0:848b8f66e645 302 }
BillVT 0:848b8f66e645 303 // Set Positive Value
BillVT 0:848b8f66e645 304 if(ledtable[rowneg][8] >= i)
BillVT 0:848b8f66e645 305 posC0 = 1;
BillVT 0:848b8f66e645 306 if(ledtable[rowneg][9] >= i)
BillVT 0:848b8f66e645 307 posC1 = 1;
BillVT 0:848b8f66e645 308 if(ledtable[rowneg][10] >= i)
BillVT 0:848b8f66e645 309 posC2 = 1;
BillVT 0:848b8f66e645 310 if(ledtable[rowneg][11] >= i)
BillVT 0:848b8f66e645 311 posC3 = 1;
BillVT 0:848b8f66e645 312 if(ledtable[rowneg][12] >= i)
BillVT 0:848b8f66e645 313 posC4 = 1;
BillVT 0:848b8f66e645 314 if(ledtable[rowneg][13] >= i)
BillVT 0:848b8f66e645 315 posC5 = 1;
BillVT 0:848b8f66e645 316 if(ledtable[rowneg][14] >= i)
BillVT 0:848b8f66e645 317 posC6 = 1;
BillVT 0:848b8f66e645 318 if(ledtable[rowneg][15] >= i)
BillVT 0:848b8f66e645 319 posC7 = 1;
BillVT 0:848b8f66e645 320 // Load Values in Latches and Clear Values to Prevent Loading into Other Latches
BillVT 0:848b8f66e645 321 posM0 = 0;
BillVT 0:848b8f66e645 322 posM1 = 0;
BillVT 0:848b8f66e645 323 negM0 = 0;
BillVT 0:848b8f66e645 324 negM1 = 0;
BillVT 0:848b8f66e645 325 clearValues();
BillVT 0:848b8f66e645 326
BillVT 0:848b8f66e645 327 // Top Mid Right Corner (3-,1+)
BillVT 0:848b8f66e645 328 posM0 = 1;
BillVT 0:848b8f66e645 329 posM1 = 0;
BillVT 0:848b8f66e645 330 negM0 = 1;
BillVT 0:848b8f66e645 331 negM1 = 1;
BillVT 0:848b8f66e645 332 // Set Negative Value
BillVT 0:848b8f66e645 333 switch (rowneg){
BillVT 0:848b8f66e645 334 case 0:
BillVT 0:848b8f66e645 335 negC0 = 1;
BillVT 0:848b8f66e645 336 break;
BillVT 0:848b8f66e645 337 case 1:
BillVT 0:848b8f66e645 338 negC1 = 1;
BillVT 0:848b8f66e645 339 break;
BillVT 0:848b8f66e645 340 case 2:
BillVT 0:848b8f66e645 341 negC2 = 1;
BillVT 0:848b8f66e645 342 break;
BillVT 0:848b8f66e645 343 case 3:
BillVT 0:848b8f66e645 344 negC3 = 1;
BillVT 0:848b8f66e645 345 break;
BillVT 0:848b8f66e645 346 case 4:
BillVT 0:848b8f66e645 347 negC4 = 1;
BillVT 0:848b8f66e645 348 break;
BillVT 0:848b8f66e645 349 case 5:
BillVT 0:848b8f66e645 350 negC5 = 1;
BillVT 0:848b8f66e645 351 break;
BillVT 0:848b8f66e645 352 case 6:
BillVT 0:848b8f66e645 353 negC6 = 1;
BillVT 0:848b8f66e645 354 break;
BillVT 0:848b8f66e645 355 case 7:
BillVT 0:848b8f66e645 356 negC7 = 0;
BillVT 0:848b8f66e645 357 break;
BillVT 0:848b8f66e645 358 }
BillVT 0:848b8f66e645 359 // Set Positive Value
BillVT 0:848b8f66e645 360 if(ledtable[rowneg][16] >= i)
BillVT 0:848b8f66e645 361 posC0 = 1;
BillVT 0:848b8f66e645 362 if(ledtable[rowneg][17] >= i)
BillVT 0:848b8f66e645 363 posC1 = 1;
BillVT 0:848b8f66e645 364 if(ledtable[rowneg][18] >= i)
BillVT 0:848b8f66e645 365 posC2 = 1;
BillVT 0:848b8f66e645 366 if(ledtable[rowneg][19] >= i)
BillVT 0:848b8f66e645 367 posC3 = 1;
BillVT 0:848b8f66e645 368 if(ledtable[rowneg][20] >= i)
BillVT 0:848b8f66e645 369 posC4 = 1;
BillVT 0:848b8f66e645 370 if(ledtable[rowneg][21] >= i)
BillVT 0:848b8f66e645 371 posC5 = 1;
BillVT 0:848b8f66e645 372 if(ledtable[rowneg][22] >= i)
BillVT 0:848b8f66e645 373 posC6 = 1;
BillVT 0:848b8f66e645 374 if(ledtable[rowneg][23] >= i)
BillVT 0:848b8f66e645 375 posC7 = 1;
BillVT 0:848b8f66e645 376 // Load Values in Latches and Clear Values to Prevent Loading into Other Latches
BillVT 0:848b8f66e645 377 posM0 = 0;
BillVT 0:848b8f66e645 378 posM1 = 0;
BillVT 0:848b8f66e645 379 negM0 = 0;
BillVT 0:848b8f66e645 380 negM1 = 1;
BillVT 0:848b8f66e645 381 clearValues();
BillVT 0:848b8f66e645 382
BillVT 0:848b8f66e645 383 // Top Right Corner (3-,0+)
BillVT 0:848b8f66e645 384 posM0 = 0;
BillVT 0:848b8f66e645 385 posM1 = 0;
BillVT 0:848b8f66e645 386 negM0 = 1;
BillVT 0:848b8f66e645 387 negM1 = 1;
BillVT 0:848b8f66e645 388 // Set Negative Value
BillVT 0:848b8f66e645 389 switch (rowneg){
BillVT 0:848b8f66e645 390 case 0:
BillVT 0:848b8f66e645 391 negC0 = 1;
BillVT 0:848b8f66e645 392 break;
BillVT 0:848b8f66e645 393 case 1:
BillVT 0:848b8f66e645 394 negC1 = 1;
BillVT 0:848b8f66e645 395 break;
BillVT 0:848b8f66e645 396 case 2:
BillVT 0:848b8f66e645 397 negC2 = 1;
BillVT 0:848b8f66e645 398 break;
BillVT 0:848b8f66e645 399 case 3:
BillVT 0:848b8f66e645 400 negC3 = 1;
BillVT 0:848b8f66e645 401 break;
BillVT 0:848b8f66e645 402 case 4:
BillVT 0:848b8f66e645 403 negC4 = 1;
BillVT 0:848b8f66e645 404 break;
BillVT 0:848b8f66e645 405 case 5:
BillVT 0:848b8f66e645 406 negC5 = 1;
BillVT 0:848b8f66e645 407 break;
BillVT 0:848b8f66e645 408 case 6:
BillVT 0:848b8f66e645 409 negC6 = 1;
BillVT 0:848b8f66e645 410 break;
BillVT 0:848b8f66e645 411 case 7:
BillVT 0:848b8f66e645 412 negC7 = 1;
BillVT 0:848b8f66e645 413 break;
BillVT 0:848b8f66e645 414 }
BillVT 0:848b8f66e645 415 // Set Positive Value
BillVT 0:848b8f66e645 416 if(ledtable[rowneg][24] >= i)
BillVT 0:848b8f66e645 417 posC0 = 1;
BillVT 0:848b8f66e645 418 if(ledtable[rowneg][25] >= i)
BillVT 0:848b8f66e645 419 posC1 = 1;
BillVT 0:848b8f66e645 420 if(ledtable[rowneg][26] >= i)
BillVT 0:848b8f66e645 421 posC2 = 1;
BillVT 0:848b8f66e645 422 if(ledtable[rowneg][27] >= i)
BillVT 0:848b8f66e645 423 posC3 = 1;
BillVT 0:848b8f66e645 424 if(ledtable[rowneg][28] >= i)
BillVT 0:848b8f66e645 425 posC4 = 1;
BillVT 0:848b8f66e645 426 if(ledtable[rowneg][29] >= i)
BillVT 0:848b8f66e645 427 posC5 = 1;
BillVT 0:848b8f66e645 428 if(ledtable[rowneg][30] >= i)
BillVT 0:848b8f66e645 429 posC6 = 1;
BillVT 0:848b8f66e645 430 if(ledtable[rowneg][31] >= i)
BillVT 0:848b8f66e645 431 posC7 = 1;
BillVT 0:848b8f66e645 432 // Load Values in Latches and Clear Values to Prevent Loading into Other Latches
BillVT 0:848b8f66e645 433 posM0 = 1;
BillVT 0:848b8f66e645 434 posM1 = 0;
BillVT 0:848b8f66e645 435 negM0 = 0;
BillVT 0:848b8f66e645 436 negM1 = 1;
BillVT 0:848b8f66e645 437
BillVT 0:848b8f66e645 438 //wait(displayDelay);
BillVT 0:848b8f66e645 439 clearLEDs();
BillVT 0:848b8f66e645 440 }
BillVT 0:848b8f66e645 441
BillVT 0:848b8f66e645 442 for(rowneg = 8; rowneg < 16; rowneg ++){
BillVT 0:848b8f66e645 443 // Clear All Values
BillVT 0:848b8f66e645 444 clearValues();
BillVT 0:848b8f66e645 445
BillVT 0:848b8f66e645 446 // ******** Turn on Lights for Each Section ******** //
BillVT 0:848b8f66e645 447 // Bottom Left Corner (0-,3+)
BillVT 0:848b8f66e645 448 posM0 = 1;
BillVT 0:848b8f66e645 449 posM1 = 1;
BillVT 0:848b8f66e645 450 negM0 = 0;
BillVT 0:848b8f66e645 451 negM1 = 0;
BillVT 0:848b8f66e645 452 // Set Negative Value
BillVT 0:848b8f66e645 453 switch (rowneg-8){
BillVT 0:848b8f66e645 454 case 0:
BillVT 0:848b8f66e645 455 negC0 = 1;
BillVT 0:848b8f66e645 456 break;
BillVT 0:848b8f66e645 457 case 1:
BillVT 0:848b8f66e645 458 negC1 = 1;
BillVT 0:848b8f66e645 459 break;
BillVT 0:848b8f66e645 460 case 2:
BillVT 0:848b8f66e645 461 negC2 = 1;
BillVT 0:848b8f66e645 462 break;
BillVT 0:848b8f66e645 463 case 3:
BillVT 0:848b8f66e645 464 negC3 = 1;
BillVT 0:848b8f66e645 465 break;
BillVT 0:848b8f66e645 466 case 4:
BillVT 0:848b8f66e645 467 negC4 = 1;
BillVT 0:848b8f66e645 468 break;
BillVT 0:848b8f66e645 469 case 5:
BillVT 0:848b8f66e645 470 negC5 = 1;
BillVT 0:848b8f66e645 471 break;
BillVT 0:848b8f66e645 472 case 6:
BillVT 0:848b8f66e645 473 negC6 = 1;
BillVT 0:848b8f66e645 474 break;
BillVT 0:848b8f66e645 475 case 7:
BillVT 0:848b8f66e645 476 negC7 = 1;
BillVT 0:848b8f66e645 477 break;
BillVT 0:848b8f66e645 478 }
BillVT 0:848b8f66e645 479 // Set Positive Value
BillVT 0:848b8f66e645 480 if(ledtable[rowneg][0] >= i)
BillVT 0:848b8f66e645 481 posC0 = 1;
BillVT 0:848b8f66e645 482 if(ledtable[rowneg][1] >= i)
BillVT 0:848b8f66e645 483 posC1 = 1;
BillVT 0:848b8f66e645 484 if(ledtable[rowneg][2] >= i)
BillVT 0:848b8f66e645 485 posC2 = 1;
BillVT 0:848b8f66e645 486 if(ledtable[rowneg][3] >= i)
BillVT 0:848b8f66e645 487 posC3 = 1;
BillVT 0:848b8f66e645 488 if(ledtable[rowneg][4] >= i)
BillVT 0:848b8f66e645 489 posC4 = 1;
BillVT 0:848b8f66e645 490 if(ledtable[rowneg][5] >= i)
BillVT 0:848b8f66e645 491 posC5 = 1;
BillVT 0:848b8f66e645 492 if(ledtable[rowneg][6] >= i)
BillVT 0:848b8f66e645 493 posC6 = 1;
BillVT 0:848b8f66e645 494 if(ledtable[rowneg][7] >= i)
BillVT 0:848b8f66e645 495 posC7 = 1;
BillVT 0:848b8f66e645 496 // Load Values in Latches and Clear Values to Prevent Loading into Other Latches
BillVT 0:848b8f66e645 497 posM0 = 0;
BillVT 0:848b8f66e645 498 posM1 = 1;
BillVT 0:848b8f66e645 499 negM0 = 1;
BillVT 0:848b8f66e645 500 negM1 = 0;
BillVT 0:848b8f66e645 501 clearValues();
BillVT 0:848b8f66e645 502
BillVT 0:848b8f66e645 503 // Bottom Left Mid Corner (0-,2+)
BillVT 0:848b8f66e645 504 posM0 = 0;
BillVT 0:848b8f66e645 505 posM1 = 1;
BillVT 0:848b8f66e645 506 negM0 = 0;
BillVT 0:848b8f66e645 507 negM1 = 0;
BillVT 0:848b8f66e645 508 // Set Negative Value
BillVT 0:848b8f66e645 509 switch (rowneg-8){
BillVT 0:848b8f66e645 510 case 0:
BillVT 0:848b8f66e645 511 negC0 = 1;
BillVT 0:848b8f66e645 512 break;
BillVT 0:848b8f66e645 513 case 1:
BillVT 0:848b8f66e645 514 negC1 = 1;
BillVT 0:848b8f66e645 515 break;
BillVT 0:848b8f66e645 516 case 2:
BillVT 0:848b8f66e645 517 negC2 = 1;
BillVT 0:848b8f66e645 518 break;
BillVT 0:848b8f66e645 519 case 3:
BillVT 0:848b8f66e645 520 negC3 = 1;
BillVT 0:848b8f66e645 521 break;
BillVT 0:848b8f66e645 522 case 4:
BillVT 0:848b8f66e645 523 negC4 = 1;
BillVT 0:848b8f66e645 524 break;
BillVT 0:848b8f66e645 525 case 5:
BillVT 0:848b8f66e645 526 negC5 = 1;
BillVT 0:848b8f66e645 527 break;
BillVT 0:848b8f66e645 528 case 6:
BillVT 0:848b8f66e645 529 negC6 = 1;
BillVT 0:848b8f66e645 530 break;
BillVT 0:848b8f66e645 531 case 7:
BillVT 0:848b8f66e645 532 negC7 = 0;
BillVT 0:848b8f66e645 533 break;
BillVT 0:848b8f66e645 534 }
BillVT 0:848b8f66e645 535 // Set Positive Value
BillVT 0:848b8f66e645 536 if(ledtable[rowneg][8] >= i)
BillVT 0:848b8f66e645 537 posC0 = 1;
BillVT 0:848b8f66e645 538 if(ledtable[rowneg][9] >= i)
BillVT 0:848b8f66e645 539 posC1 = 1;
BillVT 0:848b8f66e645 540 if(ledtable[rowneg][10] >= i)
BillVT 0:848b8f66e645 541 posC2 = 1;
BillVT 0:848b8f66e645 542 if(ledtable[rowneg][11] >= i)
BillVT 0:848b8f66e645 543 posC3 = 1;
BillVT 0:848b8f66e645 544 if(ledtable[rowneg][12] >= i)
BillVT 0:848b8f66e645 545 posC4 = 1;
BillVT 0:848b8f66e645 546 if(ledtable[rowneg][13] >= i)
BillVT 0:848b8f66e645 547 posC5 = 1;
BillVT 0:848b8f66e645 548 if(ledtable[rowneg][14] >= i)
BillVT 0:848b8f66e645 549 posC6 = 1;
BillVT 0:848b8f66e645 550 if(ledtable[rowneg][15] >= i)
BillVT 0:848b8f66e645 551 posC7 = 1;
BillVT 0:848b8f66e645 552 // Load Values in Latches and Clear Values to Prevent Loading into Other Latches
BillVT 0:848b8f66e645 553 posM0 = 1;
BillVT 0:848b8f66e645 554 posM1 = 1;
BillVT 0:848b8f66e645 555 negM0 = 1;
BillVT 0:848b8f66e645 556 negM1 = 0;
BillVT 0:848b8f66e645 557 clearValues();
BillVT 0:848b8f66e645 558
BillVT 0:848b8f66e645 559 // Bottom Right Mid Corner (2-,1+)
BillVT 0:848b8f66e645 560 posM0 = 1;
BillVT 0:848b8f66e645 561 posM1 = 0;
BillVT 0:848b8f66e645 562 negM0 = 0;
BillVT 0:848b8f66e645 563 negM1 = 1;
BillVT 0:848b8f66e645 564 // Set Negative Value
BillVT 0:848b8f66e645 565 switch (rowneg-8){
BillVT 0:848b8f66e645 566 case 0:
BillVT 0:848b8f66e645 567 negC0 = 1;
BillVT 0:848b8f66e645 568 break;
BillVT 0:848b8f66e645 569 case 1:
BillVT 0:848b8f66e645 570 negC1 = 1;
BillVT 0:848b8f66e645 571 break;
BillVT 0:848b8f66e645 572 case 2:
BillVT 0:848b8f66e645 573 negC2 = 1;
BillVT 0:848b8f66e645 574 break;
BillVT 0:848b8f66e645 575 case 3:
BillVT 0:848b8f66e645 576 negC3 = 1;
BillVT 0:848b8f66e645 577 break;
BillVT 0:848b8f66e645 578 case 4:
BillVT 0:848b8f66e645 579 negC4 = 1;
BillVT 0:848b8f66e645 580 break;
BillVT 0:848b8f66e645 581 case 5:
BillVT 0:848b8f66e645 582 negC5 = 1;
BillVT 0:848b8f66e645 583 break;
BillVT 0:848b8f66e645 584 case 6:
BillVT 0:848b8f66e645 585 negC6 = 1;
BillVT 0:848b8f66e645 586 break;
BillVT 0:848b8f66e645 587 case 7:
BillVT 0:848b8f66e645 588 negC7 = 1;
BillVT 0:848b8f66e645 589 break;
BillVT 0:848b8f66e645 590 }
BillVT 0:848b8f66e645 591 // Set Positive Value
BillVT 0:848b8f66e645 592 if(ledtable[rowneg][16] >= i)
BillVT 0:848b8f66e645 593 posC0 = 1;
BillVT 0:848b8f66e645 594 if(ledtable[rowneg][17] >= i)
BillVT 0:848b8f66e645 595 posC1 = 1;
BillVT 0:848b8f66e645 596 if(ledtable[rowneg][18] >= i)
BillVT 0:848b8f66e645 597 posC2 = 1;
BillVT 0:848b8f66e645 598 if(ledtable[rowneg][19] >= i)
BillVT 0:848b8f66e645 599 posC3 = 1;
BillVT 0:848b8f66e645 600 if(ledtable[rowneg][20] >= i)
BillVT 0:848b8f66e645 601 posC4 = 1;
BillVT 0:848b8f66e645 602 if(ledtable[rowneg][21] >= i)
BillVT 0:848b8f66e645 603 posC5 = 1;
BillVT 0:848b8f66e645 604 if(ledtable[rowneg][22] >= i)
BillVT 0:848b8f66e645 605 posC6 = 1;
BillVT 0:848b8f66e645 606 if(ledtable[rowneg][23] >= i)
BillVT 0:848b8f66e645 607 posC7 = 1;
BillVT 0:848b8f66e645 608 // Load Values in Latches and Clear Values to Prevent Loading into Other Latches
BillVT 0:848b8f66e645 609 posM0 = 0;
BillVT 0:848b8f66e645 610 posM1 = 0;
BillVT 0:848b8f66e645 611 negM0 = 1;
BillVT 0:848b8f66e645 612 negM1 = 1;
BillVT 0:848b8f66e645 613 clearValues();
BillVT 0:848b8f66e645 614
BillVT 0:848b8f66e645 615 // Bottom Right Corner (2-,0+)
BillVT 0:848b8f66e645 616 posM0 = 0;
BillVT 0:848b8f66e645 617 posM1 = 0;
BillVT 0:848b8f66e645 618 negM0 = 0;
BillVT 0:848b8f66e645 619 negM1 = 1;
BillVT 0:848b8f66e645 620 // Set Negative Value
BillVT 0:848b8f66e645 621 switch (rowneg-8){
BillVT 0:848b8f66e645 622 case 0:
BillVT 0:848b8f66e645 623 negC0 = 1;
BillVT 0:848b8f66e645 624 break;
BillVT 0:848b8f66e645 625 case 1:
BillVT 0:848b8f66e645 626 negC1 = 1;
BillVT 0:848b8f66e645 627 break;
BillVT 0:848b8f66e645 628 case 2:
BillVT 0:848b8f66e645 629 negC2 = 1;
BillVT 0:848b8f66e645 630 break;
BillVT 0:848b8f66e645 631 case 3:
BillVT 0:848b8f66e645 632 negC3 = 1;
BillVT 0:848b8f66e645 633 break;
BillVT 0:848b8f66e645 634 case 4:
BillVT 0:848b8f66e645 635 negC4 = 1;
BillVT 0:848b8f66e645 636 break;
BillVT 0:848b8f66e645 637 case 5:
BillVT 0:848b8f66e645 638 negC5 = 1;
BillVT 0:848b8f66e645 639 break;
BillVT 0:848b8f66e645 640 case 6:
BillVT 0:848b8f66e645 641 negC6 = 1;
BillVT 0:848b8f66e645 642 break;
BillVT 0:848b8f66e645 643 case 7:
BillVT 0:848b8f66e645 644 negC7 = 1;
BillVT 0:848b8f66e645 645 break;
BillVT 0:848b8f66e645 646 }
BillVT 0:848b8f66e645 647 // Set Positive Value
BillVT 0:848b8f66e645 648 if(ledtable[rowneg][24] >= i)
BillVT 0:848b8f66e645 649 posC0 = 1;
BillVT 0:848b8f66e645 650 if(ledtable[rowneg][25] >= i)
BillVT 0:848b8f66e645 651 posC1 = 1;
BillVT 0:848b8f66e645 652 if(ledtable[rowneg][26] >= i)
BillVT 0:848b8f66e645 653 posC2 = 1;
BillVT 0:848b8f66e645 654 if(ledtable[rowneg][27] >= i)
BillVT 0:848b8f66e645 655 posC3 = 1;
BillVT 0:848b8f66e645 656 if(ledtable[rowneg][28] >= i)
BillVT 0:848b8f66e645 657 posC4 = 1;
BillVT 0:848b8f66e645 658 if(ledtable[rowneg][29] >= i)
BillVT 0:848b8f66e645 659 posC5 = 1;
BillVT 0:848b8f66e645 660 if(ledtable[rowneg][30] >= i)
BillVT 0:848b8f66e645 661 posC6 = 1;
BillVT 0:848b8f66e645 662 if(ledtable[rowneg][31] >= i)
BillVT 0:848b8f66e645 663 posC7 = 1;
BillVT 0:848b8f66e645 664 // Load Values in Latches and Clear Values to Prevent Loading into Other Latches
BillVT 0:848b8f66e645 665 posM0 = 0;
BillVT 0:848b8f66e645 666 posM1 = 1;
BillVT 0:848b8f66e645 667 negM0 = 1;
BillVT 0:848b8f66e645 668 negM1 = 1;
BillVT 0:848b8f66e645 669 clearValues();
BillVT 0:848b8f66e645 670
BillVT 0:848b8f66e645 671
BillVT 0:848b8f66e645 672 //wait(displayDelay);
BillVT 0:848b8f66e645 673 clearLEDs();
BillVT 0:848b8f66e645 674 }
BillVT 0:848b8f66e645 675 }
BillVT 0:848b8f66e645 676 }