Kristopher Bahar
/
Shiftbright_Hall
Mbed Program for Gatech 4180 Shiftbrite LED Rotation Display
main.cpp@0:0499f4bb7fa5, 2011-12-14 (annotated)
- Committer:
- kbahar3
- Date:
- Wed Dec 14 22:11:49 2011 +0000
- Revision:
- 0:0499f4bb7fa5
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kbahar3 | 0:0499f4bb7fa5 | 1 | /* ----- 4180 Final Design Project ----- |
kbahar3 | 0:0499f4bb7fa5 | 2 | Bicycle Wheel LED Image Display |
kbahar3 | 0:0499f4bb7fa5 | 3 | */ |
kbahar3 | 0:0499f4bb7fa5 | 4 | #include "mbed.h" |
kbahar3 | 0:0499f4bb7fa5 | 5 | |
kbahar3 | 0:0499f4bb7fa5 | 6 | InterruptIn hall(p28); // This interupt is used to poll the Hall Effect IC |
kbahar3 | 0:0499f4bb7fa5 | 7 | DigitalOut latch(p8); |
kbahar3 | 0:0499f4bb7fa5 | 8 | DigitalOut enable(p9); |
kbahar3 | 0:0499f4bb7fa5 | 9 | Timer timer; // This timer is used to time the wheel's rotation |
kbahar3 | 0:0499f4bb7fa5 | 10 | |
kbahar3 | 0:0499f4bb7fa5 | 11 | int LEDRowNumber = 10; // This is equal to the number of divisions the user has setup for his or her image |
kbahar3 | 0:0499f4bb7fa5 | 12 | int cycle_time = 0; // Global Variable for the full rotation |
kbahar3 | 0:0499f4bb7fa5 | 13 | int rowIndex = 0; // Index for shifting through the Image array |
kbahar3 | 0:0499f4bb7fa5 | 14 | bool top_wheel = false; // Variable Debug LED Circuit |
kbahar3 | 0:0499f4bb7fa5 | 15 | int color = 0; // Variable for shifting through colors |
kbahar3 | 0:0499f4bb7fa5 | 16 | int j; // For Loop index for LED debug circuit |
kbahar3 | 0:0499f4bb7fa5 | 17 | float adj_cycle_time = 0; // Variable used to hold "cycle_time / LEDRowNumber" |
kbahar3 | 0:0499f4bb7fa5 | 18 | |
kbahar3 | 0:0499f4bb7fa5 | 19 | //Cycles through different colors on RGB LED |
kbahar3 | 0:0499f4bb7fa5 | 20 | SPI spi(p5, p6, p7); |
kbahar3 | 0:0499f4bb7fa5 | 21 | |
kbahar3 | 0:0499f4bb7fa5 | 22 | //Use SPI hardware to write color values to LED driver chip |
kbahar3 | 0:0499f4bb7fa5 | 23 | void RGB_LED(int red, int green, int blue) { |
kbahar3 | 0:0499f4bb7fa5 | 24 | unsigned int low_color=0; |
kbahar3 | 0:0499f4bb7fa5 | 25 | unsigned int high_color=0; |
kbahar3 | 0:0499f4bb7fa5 | 26 | high_color=(blue<<4)|((red&0x3C0)>>6); |
kbahar3 | 0:0499f4bb7fa5 | 27 | low_color=(((red&0x3F)<<10)|(green)); |
kbahar3 | 0:0499f4bb7fa5 | 28 | spi.write(high_color); |
kbahar3 | 0:0499f4bb7fa5 | 29 | spi.write(low_color); |
kbahar3 | 0:0499f4bb7fa5 | 30 | latch=1; |
kbahar3 | 0:0499f4bb7fa5 | 31 | latch=0; |
kbahar3 | 0:0499f4bb7fa5 | 32 | } |
kbahar3 | 0:0499f4bb7fa5 | 33 | |
kbahar3 | 0:0499f4bb7fa5 | 34 | //Interupt Routine used to detect when the magnet passes the Hall Effect Sensor |
kbahar3 | 0:0499f4bb7fa5 | 35 | void intRoutine() { |
kbahar3 | 0:0499f4bb7fa5 | 36 | cycle_time = timer.read_ms(); //This is only called then the Hall Effect IC returns a "0" |
kbahar3 | 0:0499f4bb7fa5 | 37 | adj_cycle_time = cycle_time / LEDRowNumber; //Calculates the time between sending each LED Row within the color Arrays |
kbahar3 | 0:0499f4bb7fa5 | 38 | timer.reset(); //Resets the Timer |
kbahar3 | 0:0499f4bb7fa5 | 39 | rowIndex = 0; //Resets the Row to be sent so the image always stays in the relatively same place |
kbahar3 | 0:0499f4bb7fa5 | 40 | color=0; //Resets the color Index for the LED sample wheel so the image always stays in the same place |
kbahar3 | 0:0499f4bb7fa5 | 41 | } |
kbahar3 | 0:0499f4bb7fa5 | 42 | |
kbahar3 | 0:0499f4bb7fa5 | 43 | int main() { |
kbahar3 | 0:0499f4bb7fa5 | 44 | hall.mode(PullUp); //Initializes the PullUp Resistor for the Hall Effect Sensor |
kbahar3 | 0:0499f4bb7fa5 | 45 | hall.fall(&intRoutine); //Initializes the Interrupt Routine for the Hall Effect Sensor (on falling edge) |
kbahar3 | 0:0499f4bb7fa5 | 46 | |
kbahar3 | 0:0499f4bb7fa5 | 47 | spi.format(16,0); //Initializes the Shiftbright LED Chain |
kbahar3 | 0:0499f4bb7fa5 | 48 | spi.frequency(500000); |
kbahar3 | 0:0499f4bb7fa5 | 49 | enable=0; |
kbahar3 | 0:0499f4bb7fa5 | 50 | latch=0; |
kbahar3 | 0:0499f4bb7fa5 | 51 | wait(2); |
kbahar3 | 0:0499f4bb7fa5 | 52 | |
kbahar3 | 0:0499f4bb7fa5 | 53 | timer.start(); //Starts the Timer |
kbahar3 | 0:0499f4bb7fa5 | 54 | |
kbahar3 | 0:0499f4bb7fa5 | 55 | /*//----- Color Initialization for Debug Program ----- |
kbahar3 | 0:0499f4bb7fa5 | 56 | int red=0; |
kbahar3 | 0:0499f4bb7fa5 | 57 | int green=0; |
kbahar3 | 0:0499f4bb7fa5 | 58 | int blue=0; |
kbahar3 | 0:0499f4bb7fa5 | 59 | */ |
kbahar3 | 0:0499f4bb7fa5 | 60 | |
kbahar3 | 0:0499f4bb7fa5 | 61 | /* //----- Spiral Pattern ----- |
kbahar3 | 0:0499f4bb7fa5 | 62 | int red[10][10]={50,0,0,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 63 | ,0,50,0,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 64 | ,0,0,50,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 65 | ,0,0,0,50,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 66 | ,0,0,0,0,50,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 67 | ,0,0,0,0,0,50,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 68 | ,0,0,0,0,0,0,50,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 69 | ,0,0,0,0,0,0,0,50,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 70 | ,0,0,0,0,0,0,0,0,50,0 |
kbahar3 | 0:0499f4bb7fa5 | 71 | ,0,0,0,0,0,0,0,0,0,50}; |
kbahar3 | 0:0499f4bb7fa5 | 72 | int green[10][10]={50,0,0,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 73 | ,0,50,0,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 74 | ,0,0,50,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 75 | ,0,0,0,50,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 76 | ,0,0,0,0,50,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 77 | ,0,0,0,0,0,50,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 78 | ,0,0,0,0,0,0,50,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 79 | ,0,0,0,0,0,0,0,50,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 80 | ,0,0,0,0,0,0,0,0,50,0 |
kbahar3 | 0:0499f4bb7fa5 | 81 | ,0,0,0,0,0,0,0,0,0,50}; |
kbahar3 | 0:0499f4bb7fa5 | 82 | int blue[10][10]={50,0,0,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 83 | ,0,50,0,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 84 | ,0,0,50,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 85 | ,0,0,0,50,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 86 | ,0,0,0,0,50,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 87 | ,0,0,0,0,0,50,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 88 | ,0,0,0,0,0,0,50,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 89 | ,0,0,0,0,0,0,0,50,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 90 | ,0,0,0,0,0,0,0,0,50,0 |
kbahar3 | 0:0499f4bb7fa5 | 91 | ,0,0,0,0,0,0,0,0,0,50}; |
kbahar3 | 0:0499f4bb7fa5 | 92 | */ |
kbahar3 | 0:0499f4bb7fa5 | 93 | |
kbahar3 | 0:0499f4bb7fa5 | 94 | //----- Pac Man ----- |
kbahar3 | 0:0499f4bb7fa5 | 95 | |
kbahar3 | 0:0499f4bb7fa5 | 96 | int red[10][10]={50,50,50,50,50,50,50,50,50,50 |
kbahar3 | 0:0499f4bb7fa5 | 97 | ,50,50,50,50,50,50,50,50,50,50 |
kbahar3 | 0:0499f4bb7fa5 | 98 | ,50,50,50,50,50,50,50,50,50,50 |
kbahar3 | 0:0499f4bb7fa5 | 99 | ,50,50,50,50,50,50,50,50,50,50 |
kbahar3 | 0:0499f4bb7fa5 | 100 | ,50,50,50,50,50,50,0,0,50,50 |
kbahar3 | 0:0499f4bb7fa5 | 101 | ,50,50,50,50,50,50,50,50,50,50 |
kbahar3 | 0:0499f4bb7fa5 | 102 | ,0,0,0,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 103 | ,0,0,0,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 104 | ,50,50,50,50,50,50,50,50,50,50 |
kbahar3 | 0:0499f4bb7fa5 | 105 | ,50,50,50,50,50,50,50,50,50,50}; |
kbahar3 | 0:0499f4bb7fa5 | 106 | |
kbahar3 | 0:0499f4bb7fa5 | 107 | int green[10][10]={50,50,50,50,50,50,50,50,50,50 |
kbahar3 | 0:0499f4bb7fa5 | 108 | ,50,50,50,50,50,50,50,50,50,50 |
kbahar3 | 0:0499f4bb7fa5 | 109 | ,50,50,50,50,50,50,50,50,50,50 |
kbahar3 | 0:0499f4bb7fa5 | 110 | ,50,50,50,50,50,50,50,50,50,50 |
kbahar3 | 0:0499f4bb7fa5 | 111 | ,50,50,50,50,50,50,0,0,50,50 |
kbahar3 | 0:0499f4bb7fa5 | 112 | ,50,50,50,50,50,50,50,50,50,50 |
kbahar3 | 0:0499f4bb7fa5 | 113 | ,0,0,0,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 114 | ,0,0,0,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 115 | ,50,50,50,50,50,50,50,50,50,50 |
kbahar3 | 0:0499f4bb7fa5 | 116 | ,50,50,50,50,50,50,50,50,50,50}; |
kbahar3 | 0:0499f4bb7fa5 | 117 | |
kbahar3 | 0:0499f4bb7fa5 | 118 | int blue[10][10]={0,0,0,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 119 | ,0,0,0,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 120 | ,0,0,0,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 121 | ,0,0,0,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 122 | ,0,0,0,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 123 | ,0,0,0,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 124 | ,0,0,0,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 125 | ,0,0,0,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 126 | ,0,0,0,0,0,0,0,0,0,0 |
kbahar3 | 0:0499f4bb7fa5 | 127 | ,0,0,0,0,0,0,0,0,0,0}; |
kbahar3 | 0:0499f4bb7fa5 | 128 | |
kbahar3 | 0:0499f4bb7fa5 | 129 | |
kbahar3 | 0:0499f4bb7fa5 | 130 | /*// -----Blue Triangle: From Bitmap Image Program ----- |
kbahar3 | 0:0499f4bb7fa5 | 131 | int red[36][10]={0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 132 | 0,0,0,0,0,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 133 | 0,0,0,0,0,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 134 | 0,0,0,0,0,0,0,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 135 | 0,0,0,0,0,0,0,0,0,42, |
kbahar3 | 0:0499f4bb7fa5 | 136 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 137 | 0,0,0,0,0,0,0,0,0,42, |
kbahar3 | 0:0499f4bb7fa5 | 138 | 0,0,0,0,0,0,0,0,0,42, |
kbahar3 | 0:0499f4bb7fa5 | 139 | 0,0,0,0,0,0,0,0,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 140 | 0,0,0,0,0,0,0,0,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 141 | 0,0,0,0,0,0,0,0,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 142 | 0,0,0,0,0,0,0,0,0,42, |
kbahar3 | 0:0499f4bb7fa5 | 143 | 0,0,0,0,0,0,0,0,0,42, |
kbahar3 | 0:0499f4bb7fa5 | 144 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 145 | 0,0,0,0,0,0,0,0,0,42, |
kbahar3 | 0:0499f4bb7fa5 | 146 | 0,0,0,0,0,0,0,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 147 | 0,0,0,0,0,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 148 | 0,0,0,0,0,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 149 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 150 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 151 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 152 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 153 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 154 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 155 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 156 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 157 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 158 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 159 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 160 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 161 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 162 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 163 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 164 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 165 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 166 | 0,0,0,0,0,0,0,0,0,0}; |
kbahar3 | 0:0499f4bb7fa5 | 167 | |
kbahar3 | 0:0499f4bb7fa5 | 168 | int green[36][10]={0,0,0,0,42,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 169 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 170 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 171 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 172 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 173 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 174 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 175 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 176 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 177 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 178 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 179 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 180 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 181 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 182 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 183 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 184 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 185 | 0,0,0,0,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 186 | 0,0,0,0,42,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 187 | 0,0,0,0,42,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 188 | 0,0,0,0,42,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 189 | 0,0,0,0,42,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 190 | 0,0,0,0,42,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 191 | 0,0,0,0,42,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 192 | 0,0,0,0,42,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 193 | 0,0,0,0,0,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 194 | 0,0,0,0,0,0,0,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 195 | 0,0,0,0,0,0,0,0,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 196 | 0,0,0,0,0,0,0,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 197 | 0,0,0,0,0,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 198 | 0,0,0,0,0,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 199 | 0,0,0,0,42,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 200 | 0,0,0,0,42,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 201 | 0,0,0,0,42,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 202 | 0,0,0,0,42,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 203 | 0,0,0,0,42,42,42,42,42,42}; |
kbahar3 | 0:0499f4bb7fa5 | 204 | |
kbahar3 | 0:0499f4bb7fa5 | 205 | int blue[36][10]={42,42,42,42,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 206 | 42,42,42,42,42,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 207 | 42,42,42,42,42,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 208 | 42,42,42,42,42,42,42,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 209 | 42,42,42,42,42,42,42,42,42,0, |
kbahar3 | 0:0499f4bb7fa5 | 210 | 42,42,42,42,42,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 211 | 42,42,42,42,42,42,42,42,42,0, |
kbahar3 | 0:0499f4bb7fa5 | 212 | 42,42,42,42,42,42,42,42,42,0, |
kbahar3 | 0:0499f4bb7fa5 | 213 | 42,42,42,42,42,42,42,42,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 214 | 42,42,42,42,42,42,42,42,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 215 | 42,42,42,42,42,42,42,42,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 216 | 42,42,42,42,42,42,42,42,42,0, |
kbahar3 | 0:0499f4bb7fa5 | 217 | 42,42,42,42,42,42,42,42,42,0, |
kbahar3 | 0:0499f4bb7fa5 | 218 | 42,42,42,42,42,42,42,42,42,42, |
kbahar3 | 0:0499f4bb7fa5 | 219 | 42,42,42,42,42,42,42,42,42,0, |
kbahar3 | 0:0499f4bb7fa5 | 220 | 42,42,42,42,42,42,42,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 221 | 42,42,42,42,42,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 222 | 42,42,42,42,42,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 223 | 42,42,42,42,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 224 | 42,42,42,42,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 225 | 42,42,42,42,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 226 | 42,42,42,42,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 227 | 42,42,42,42,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 228 | 42,42,42,42,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 229 | 42,42,42,42,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 230 | 42,42,42,42,42,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 231 | 42,42,42,42,42,42,42,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 232 | 42,42,42,42,42,42,42,42,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 233 | 42,42,42,42,42,42,42,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 234 | 42,42,42,42,42,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 235 | 42,42,42,42,42,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 236 | 42,42,42,42,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 237 | 42,42,42,42,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 238 | 42,42,42,42,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 239 | 42,42,42,42,0,0,0,0,0,0, |
kbahar3 | 0:0499f4bb7fa5 | 240 | 42,42,42,42,0,0,0,0,0,0}; |
kbahar3 | 0:0499f4bb7fa5 | 241 | */ |
kbahar3 | 0:0499f4bb7fa5 | 242 | while(1) { |
kbahar3 | 0:0499f4bb7fa5 | 243 | //led1 = hall; // Used for Debugging the Hall Effect IC |
kbahar3 | 0:0499f4bb7fa5 | 244 | //led2 = !hall; // Used for Debugging the Hall Effect IC |
kbahar3 | 0:0499f4bb7fa5 | 245 | |
kbahar3 | 0:0499f4bb7fa5 | 246 | //----- Code for Cycling through a 2D Picture Array ----- |
kbahar3 | 0:0499f4bb7fa5 | 247 | wait_ms(adj_cycle_time); |
kbahar3 | 0:0499f4bb7fa5 | 248 | for(int i=9;i>=0;i--){ //If we update without any waiting, the LEDs change colors super fast, and you won't notice the shifting LEDs |
kbahar3 | 0:0499f4bb7fa5 | 249 | RGB_LED( red[rowIndex][i], green[rowIndex][i], blue[rowIndex][i]); |
kbahar3 | 0:0499f4bb7fa5 | 250 | } |
kbahar3 | 0:0499f4bb7fa5 | 251 | rowIndex++; |
kbahar3 | 0:0499f4bb7fa5 | 252 | if(rowIndex>=LEDRowNumber){ |
kbahar3 | 0:0499f4bb7fa5 | 253 | rowIndex = 0; |
kbahar3 | 0:0499f4bb7fa5 | 254 | } |
kbahar3 | 0:0499f4bb7fa5 | 255 | |
kbahar3 | 0:0499f4bb7fa5 | 256 | |
kbahar3 | 0:0499f4bb7fa5 | 257 | /* //----- Debug Code: Rainbow Pattern ------ (Pre 2D Color Array) |
kbahar3 | 0:0499f4bb7fa5 | 258 | wait_ms(adj_cycle_time); |
kbahar3 | 0:0499f4bb7fa5 | 259 | top_wheel = true; |
kbahar3 | 0:0499f4bb7fa5 | 260 | if (top_wheel && (color == 0)) { |
kbahar3 | 0:0499f4bb7fa5 | 261 | // Red, Color 0 |
kbahar3 | 0:0499f4bb7fa5 | 262 | //printf("RED RED RED\r\n"); |
kbahar3 | 0:0499f4bb7fa5 | 263 | red = 50; |
kbahar3 | 0:0499f4bb7fa5 | 264 | blue = 0; |
kbahar3 | 0:0499f4bb7fa5 | 265 | green = 0; |
kbahar3 | 0:0499f4bb7fa5 | 266 | for(j = 0; j < 10; j++) |
kbahar3 | 0:0499f4bb7fa5 | 267 | RGB_LED(red, green, blue); |
kbahar3 | 0:0499f4bb7fa5 | 268 | top_wheel = false; |
kbahar3 | 0:0499f4bb7fa5 | 269 | color++; |
kbahar3 | 0:0499f4bb7fa5 | 270 | } |
kbahar3 | 0:0499f4bb7fa5 | 271 | if (top_wheel && (color == 1)) { |
kbahar3 | 0:0499f4bb7fa5 | 272 | //printf("ORANGE ORANGE ORANGE\r\n"); |
kbahar3 | 0:0499f4bb7fa5 | 273 | // Orange, Color 1 |
kbahar3 | 0:0499f4bb7fa5 | 274 | red = 50; |
kbahar3 | 0:0499f4bb7fa5 | 275 | blue = 0; |
kbahar3 | 0:0499f4bb7fa5 | 276 | green = 25; |
kbahar3 | 0:0499f4bb7fa5 | 277 | for(j = 0; j < 10; j++) |
kbahar3 | 0:0499f4bb7fa5 | 278 | RGB_LED(red, green, blue); |
kbahar3 | 0:0499f4bb7fa5 | 279 | top_wheel = false; |
kbahar3 | 0:0499f4bb7fa5 | 280 | color++; |
kbahar3 | 0:0499f4bb7fa5 | 281 | } |
kbahar3 | 0:0499f4bb7fa5 | 282 | if (top_wheel && (color == 2)) { |
kbahar3 | 0:0499f4bb7fa5 | 283 | //printf("YELLOW YELLOW YELLOW\r\n"); |
kbahar3 | 0:0499f4bb7fa5 | 284 | // Yellow, Color 2 |
kbahar3 | 0:0499f4bb7fa5 | 285 | red = 50; |
kbahar3 | 0:0499f4bb7fa5 | 286 | blue = 0; |
kbahar3 | 0:0499f4bb7fa5 | 287 | green = 50; |
kbahar3 | 0:0499f4bb7fa5 | 288 | for(j = 0; j < 10; j++) |
kbahar3 | 0:0499f4bb7fa5 | 289 | RGB_LED(red, green, blue); |
kbahar3 | 0:0499f4bb7fa5 | 290 | top_wheel = false; |
kbahar3 | 0:0499f4bb7fa5 | 291 | color++; |
kbahar3 | 0:0499f4bb7fa5 | 292 | } |
kbahar3 | 0:0499f4bb7fa5 | 293 | if (top_wheel && (color == 3)) { |
kbahar3 | 0:0499f4bb7fa5 | 294 | //printf("GREEN GREEN GREEN\r\n"); |
kbahar3 | 0:0499f4bb7fa5 | 295 | // Green, Color 3 |
kbahar3 | 0:0499f4bb7fa5 | 296 | red = 0; |
kbahar3 | 0:0499f4bb7fa5 | 297 | blue = 0; |
kbahar3 | 0:0499f4bb7fa5 | 298 | green = 50; |
kbahar3 | 0:0499f4bb7fa5 | 299 | for(j = 0; j < 10; j++) |
kbahar3 | 0:0499f4bb7fa5 | 300 | RGB_LED(red, green, blue); |
kbahar3 | 0:0499f4bb7fa5 | 301 | top_wheel = false; |
kbahar3 | 0:0499f4bb7fa5 | 302 | color++; |
kbahar3 | 0:0499f4bb7fa5 | 303 | } |
kbahar3 | 0:0499f4bb7fa5 | 304 | if (top_wheel && (color == 4)) { |
kbahar3 | 0:0499f4bb7fa5 | 305 | //printf("CYAN CYAN CYAN\r\n"); |
kbahar3 | 0:0499f4bb7fa5 | 306 | // Cyan, Color 4 |
kbahar3 | 0:0499f4bb7fa5 | 307 | red = 0; |
kbahar3 | 0:0499f4bb7fa5 | 308 | blue = 50; |
kbahar3 | 0:0499f4bb7fa5 | 309 | green = 50; |
kbahar3 | 0:0499f4bb7fa5 | 310 | for(j = 0; j < 10; j++) |
kbahar3 | 0:0499f4bb7fa5 | 311 | RGB_LED(red, green, blue); |
kbahar3 | 0:0499f4bb7fa5 | 312 | top_wheel = false; |
kbahar3 | 0:0499f4bb7fa5 | 313 | color++; |
kbahar3 | 0:0499f4bb7fa5 | 314 | } |
kbahar3 | 0:0499f4bb7fa5 | 315 | if (top_wheel && (color == 5)) { |
kbahar3 | 0:0499f4bb7fa5 | 316 | //printf("BLUE BLUE BLUE\r\n"); |
kbahar3 | 0:0499f4bb7fa5 | 317 | // Blue, Color 5 |
kbahar3 | 0:0499f4bb7fa5 | 318 | red = 0; |
kbahar3 | 0:0499f4bb7fa5 | 319 | blue = 50; |
kbahar3 | 0:0499f4bb7fa5 | 320 | green = 0; |
kbahar3 | 0:0499f4bb7fa5 | 321 | for(j = 0; j < 10; j++) |
kbahar3 | 0:0499f4bb7fa5 | 322 | RGB_LED(red, green, blue); |
kbahar3 | 0:0499f4bb7fa5 | 323 | top_wheel = false; |
kbahar3 | 0:0499f4bb7fa5 | 324 | color++; |
kbahar3 | 0:0499f4bb7fa5 | 325 | } |
kbahar3 | 0:0499f4bb7fa5 | 326 | if (top_wheel && (color == 6)) { |
kbahar3 | 0:0499f4bb7fa5 | 327 | //printf("PURPLE PURPLE PURPLE\r\n"); |
kbahar3 | 0:0499f4bb7fa5 | 328 | //Purple, Color 6 |
kbahar3 | 0:0499f4bb7fa5 | 329 | red = 50; |
kbahar3 | 0:0499f4bb7fa5 | 330 | blue = 50; |
kbahar3 | 0:0499f4bb7fa5 | 331 | green = 0; |
kbahar3 | 0:0499f4bb7fa5 | 332 | for(j = 0; j < 10; j++) |
kbahar3 | 0:0499f4bb7fa5 | 333 | RGB_LED(red, green, blue); |
kbahar3 | 0:0499f4bb7fa5 | 334 | top_wheel = false; |
kbahar3 | 0:0499f4bb7fa5 | 335 | color = 0; |
kbahar3 | 0:0499f4bb7fa5 | 336 | } |
kbahar3 | 0:0499f4bb7fa5 | 337 | */ |
kbahar3 | 0:0499f4bb7fa5 | 338 | } |
kbahar3 | 0:0499f4bb7fa5 | 339 | } |