William Etter / Mbed 2 deprecated LEDTable

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers rain.h Source File

rain.h

00001 /* Rain Table */
00002 int rain_time;
00003 int rain_drop_time;
00004 int rain_drop_prev_time;
00005 char ledtable_rain [16] [32];
00006 
00007 
00008 /*************************************************************************
00009 Function Headers
00010 **************************************************************************/
00011 void rain_init(void);
00012 void rain_update(void);
00013 void rain_drop(void);
00014 
00015 
00016 void rain_init(void){
00017     rain_drop_time = tabletimer.read_ms();
00018     rain_drop_prev_time = rain_drop_time;
00019     rain_time = tabletimer.read_ms();
00020 }
00021 
00022 
00023 
00024 void rain_update(void){
00025     
00026     if((tabletimer.read_ms() - rain_time)>rain_update_time){
00027         // Update the rain mapping
00028         
00029         // Shift values down
00030         for(int row = 15; row >0; row--){
00031             ledtable_rain[row][0] = ledtable[row-1][0];
00032             ledtable_rain[row][1] = ledtable[row-1][1];
00033             ledtable_rain[row][2] = ledtable[row-1][2];
00034             ledtable_rain[row][3] = ledtable[row-1][3];
00035             ledtable_rain[row][4] = ledtable[row-1][4];
00036             ledtable_rain[row][5] = ledtable[row-1][5];
00037             ledtable_rain[row][6] = ledtable[row-1][6];
00038             ledtable_rain[row][7] = ledtable[row-1][7];
00039             ledtable_rain[row][8] = ledtable[row-1][8];
00040             ledtable_rain[row][9] = ledtable[row-1][9];
00041             ledtable_rain[row][10] = ledtable[row-1][10];
00042             ledtable_rain[row][11] = ledtable[row-1][11];
00043             ledtable_rain[row][12] = ledtable[row-1][12];
00044             ledtable_rain[row][13] = ledtable[row-1][13];
00045             ledtable_rain[row][14] = ledtable[row-1][14];
00046             ledtable_rain[row][15] = ledtable[row-1][15];
00047             ledtable_rain[row][16] = ledtable[row-1][16];
00048             ledtable_rain[row][17] = ledtable[row-1][17];
00049             ledtable_rain[row][18] = ledtable[row-1][18];
00050             ledtable_rain[row][19] = ledtable[row-1][19];
00051             ledtable_rain[row][20] = ledtable[row-1][20];
00052             ledtable_rain[row][21] = ledtable[row-1][21];
00053             ledtable_rain[row][22] = ledtable[row-1][22];
00054             ledtable_rain[row][23] = ledtable[row-1][23];
00055             ledtable_rain[row][24] = ledtable[row-1][24];
00056             ledtable_rain[row][25] = ledtable[row-1][25];
00057             ledtable_rain[row][26] = ledtable[row-1][26];
00058             ledtable_rain[row][27] = ledtable[row-1][27];
00059             ledtable_rain[row][28] = ledtable[row-1][28];
00060             ledtable_rain[row][29] = ledtable[row-1][29];
00061             ledtable_rain[row][30] = ledtable[row-1][30];
00062             ledtable_rain[row][31] = ledtable[row-1][31];
00063         }
00064         // Clear first row
00065         for(int col = 0; col <32; col++){
00066             ledtable_rain[0][col] = 0;
00067         }
00068         
00069         // Update table
00070         for(int i = 0; i <16; i++){
00071             for(int j = 0; j <32; j++){
00072                 ledtable[i][j] = ledtable_rain[i][j];
00073             }
00074         }
00075         
00076                 // Add new Drop
00077         rain_drop_time = tabletimer.read_ms();
00078         if((rain_drop_time - rain_drop_prev_time) > drop_time_diff){
00079             rain_drop();
00080             rain_drop_prev_time = tabletimer.read_ms();
00081         }        // Add new Drop
00082         rain_drop_time = tabletimer.read_ms();
00083         if((rain_drop_time - rain_drop_prev_time) > drop_time_diff){
00084             rain_drop();
00085             rain_drop_prev_time = tabletimer.read_ms();
00086         }
00087         
00088         rain_time = tabletimer.read_ms();
00089         
00090     }   
00091 }
00092 
00093 
00094 void rain_drop(void){
00095     int leader_num;
00096     int drop_num = rand()%32;
00097     for(int x = 0; x < drop_num; x ++){
00098         if((rand()%10)>drop_probabilty){
00099             leader_num = rand()%32;
00100             if(ledtable[0][leader_num] == 0){
00101                 ledtable[0][leader_num] = 60;
00102             }
00103         }
00104     }
00105 }