B13 final project part 1

Dependencies:   mbed

Committer:
mbedobsza
Date:
Tue Dec 08 21:42:56 2015 +0000
Revision:
0:0def0023f900
13B_slave-fra221-6476

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbedobsza 0:0def0023f900 1 #include "mbed.h"
mbedobsza 0:0def0023f900 2 #include "iteadstudio_colourshield.h"
mbedobsza 0:0def0023f900 3 /**************Define*************************/
mbedobsza 0:0def0023f900 4 DigitalOut RGB_RST(A2);
mbedobsza 0:0def0023f900 5 DigitalOut RGB_LAT(A1);
mbedobsza 0:0def0023f900 6 DigitalOut RGB_SB(A0);
mbedobsza 0:0def0023f900 7
mbedobsza 0:0def0023f900 8 /*DigitalIn nn0(D7);
mbedobsza 0:0def0023f900 9 DigitalIn nn1(D2);
mbedobsza 0:0def0023f900 10 DigitalIn nn2(D6);*/
mbedobsza 0:0def0023f900 11 SPI RGB_SPI(PB_15,PB_14,PB_13);
mbedobsza 0:0def0023f900 12 BusOut RGB_CP(D8,D9,D10,D11,D12,D13,D3,D4);
mbedobsza 0:0def0023f900 13 uint8_t RGBi= 0,RGBj= 0,RGBk= 0;
mbedobsza 0:0def0023f900 14 uint8_t RedWB=55,GreenWB=0,BlueWB=60; // percent | R,G,B calibrate change it if some color brighter than other
mbedobsza 0:0def0023f900 15 uint8_t display[8][8][3]= {0};
mbedobsza 0:0def0023f900 16 /*******************************************/
mbedobsza 0:0def0023f900 17 void sendframe(uint8_t frame[8][8][3])
mbedobsza 0:0def0023f900 18 {
mbedobsza 0:0def0023f900 19 memcpy(display, frame, sizeof(display));
mbedobsza 0:0def0023f900 20 }
mbedobsza 0:0def0023f900 21 void INITRGB(char in[3])
mbedobsza 0:0def0023f900 22 {
mbedobsza 0:0def0023f900 23 int wd;
mbedobsza 0:0def0023f900 24 RGB_RST =0;
mbedobsza 0:0def0023f900 25 RGB_RST =1;
mbedobsza 0:0def0023f900 26 RGB_SPI.frequency(20000000);
mbedobsza 0:0def0023f900 27 RGB_SPI.format(8,1);
mbedobsza 0:0def0023f900 28 RGB_LAT = 0;
mbedobsza 0:0def0023f900 29 RGB_SB =0;
mbedobsza 0:0def0023f900 30 int l=0;
mbedobsza 0:0def0023f900 31
mbedobsza 0:0def0023f900 32 for (int i = 0; i<8; i++) { // Whitebalance......**important
mbedobsza 0:0def0023f900 33 for (int j = 0; j<3; j++) {
mbedobsza 0:0def0023f900 34 for (int k = 0; k<6; k++) {
mbedobsza 0:0def0023f900 35 wd+=((in[j]<<k)&0b00100000)?1:0;
mbedobsza 0:0def0023f900 36 wd<<1;
mbedobsza 0:0def0023f900 37 l++;
mbedobsza 0:0def0023f900 38 if(l>=7) {
mbedobsza 0:0def0023f900 39 RGB_SPI.write(255);
mbedobsza 0:0def0023f900 40 l=0;
mbedobsza 0:0def0023f900 41 }
mbedobsza 0:0def0023f900 42 }
mbedobsza 0:0def0023f900 43 //RGB_SPI.write(255);
mbedobsza 0:0def0023f900 44 }
mbedobsza 0:0def0023f900 45 }
mbedobsza 0:0def0023f900 46
mbedobsza 0:0def0023f900 47 RGB_LAT = 1;
mbedobsza 0:0def0023f900 48 RGB_LAT = 0;
mbedobsza 0:0def0023f900 49
mbedobsza 0:0def0023f900 50 RGB_SPI.format(8,0);
mbedobsza 0:0def0023f900 51 }
mbedobsza 0:0def0023f900 52
mbedobsza 0:0def0023f900 53 void displayRGB()
mbedobsza 0:0def0023f900 54 {
mbedobsza 0:0def0023f900 55
mbedobsza 0:0def0023f900 56 RGB_SB =1;
mbedobsza 0:0def0023f900 57 for( RGBi=0; RGBi<8; RGBi++) {
mbedobsza 0:0def0023f900 58 for( RGBk=0; RGBk<8; RGBk++) {
mbedobsza 0:0def0023f900 59 for( RGBj=0; RGBj<3; RGBj++) {
mbedobsza 0:0def0023f900 60 RGB_SPI.write(display[RGBk][RGBi][RGBj]);
mbedobsza 0:0def0023f900 61 }
mbedobsza 0:0def0023f900 62
mbedobsza 0:0def0023f900 63 }
mbedobsza 0:0def0023f900 64 RGB_CP = 0;
mbedobsza 0:0def0023f900 65 wait_us(15);
mbedobsza 0:0def0023f900 66 RGB_LAT = 1;
mbedobsza 0:0def0023f900 67 RGB_LAT = 0;
mbedobsza 0:0def0023f900 68
mbedobsza 0:0def0023f900 69 RGB_CP = (0x01<<RGBi);
mbedobsza 0:0def0023f900 70
mbedobsza 0:0def0023f900 71 }
mbedobsza 0:0def0023f900 72 }
mbedobsza 0:0def0023f900 73
mbedobsza 0:0def0023f900 74 void HSVtoRGB( float *r, float *g, float *b, float h, float s, float v )
mbedobsza 0:0def0023f900 75 {
mbedobsza 0:0def0023f900 76 int i;
mbedobsza 0:0def0023f900 77 float f, p, q, t;
mbedobsza 0:0def0023f900 78 if( s == 0 ) {
mbedobsza 0:0def0023f900 79 // achromatic (grey)
mbedobsza 0:0def0023f900 80 *r = *g = *b = v;
mbedobsza 0:0def0023f900 81 return;
mbedobsza 0:0def0023f900 82 }
mbedobsza 0:0def0023f900 83 h /= 60; // sector 0 to 5
mbedobsza 0:0def0023f900 84 i = floor( h );
mbedobsza 0:0def0023f900 85 f = h - i; // factorial part of h
mbedobsza 0:0def0023f900 86 p = v * ( 1 - s );
mbedobsza 0:0def0023f900 87 q = v * ( 1 - s * f );
mbedobsza 0:0def0023f900 88 t = v * ( 1 - s * ( 1 - f ) );
mbedobsza 0:0def0023f900 89 switch( i ) {
mbedobsza 0:0def0023f900 90 case 0:
mbedobsza 0:0def0023f900 91 *r = v;
mbedobsza 0:0def0023f900 92 *g = t;
mbedobsza 0:0def0023f900 93 *b = p;
mbedobsza 0:0def0023f900 94 break;
mbedobsza 0:0def0023f900 95 case 1:
mbedobsza 0:0def0023f900 96 *r = q;
mbedobsza 0:0def0023f900 97 *g = v;
mbedobsza 0:0def0023f900 98 *b = p;
mbedobsza 0:0def0023f900 99 break;
mbedobsza 0:0def0023f900 100 case 2:
mbedobsza 0:0def0023f900 101 *r = p;
mbedobsza 0:0def0023f900 102 *g = v;
mbedobsza 0:0def0023f900 103 *b = t;
mbedobsza 0:0def0023f900 104 break;
mbedobsza 0:0def0023f900 105 case 3:
mbedobsza 0:0def0023f900 106 *r = p;
mbedobsza 0:0def0023f900 107 *g = q;
mbedobsza 0:0def0023f900 108 *b = v;
mbedobsza 0:0def0023f900 109 break;
mbedobsza 0:0def0023f900 110 case 4:
mbedobsza 0:0def0023f900 111 *r = t;
mbedobsza 0:0def0023f900 112 *g = p;
mbedobsza 0:0def0023f900 113 *b = v;
mbedobsza 0:0def0023f900 114 break;
mbedobsza 0:0def0023f900 115 default: // case 5:
mbedobsza 0:0def0023f900 116 *r = v;
mbedobsza 0:0def0023f900 117 *g = p;
mbedobsza 0:0def0023f900 118 *b = q;
mbedobsza 0:0def0023f900 119 break;
mbedobsza 0:0def0023f900 120 }
mbedobsza 0:0def0023f900 121 }
mbedobsza 0:0def0023f900 122 void screen_zeros()
mbedobsza 0:0def0023f900 123 {
mbedobsza 0:0def0023f900 124 memset(display, 0, sizeof(display));
mbedobsza 0:0def0023f900 125 }
mbedobsza 0:0def0023f900 126
mbedobsza 0:0def0023f900 127
mbedobsza 0:0def0023f900 128
mbedobsza 0:0def0023f900 129
mbedobsza 0:0def0023f900 130
mbedobsza 0:0def0023f900 131
mbedobsza 0:0def0023f900 132
mbedobsza 0:0def0023f900 133
mbedobsza 0:0def0023f900 134
mbedobsza 0:0def0023f900 135
mbedobsza 0:0def0023f900 136
mbedobsza 0:0def0023f900 137
mbedobsza 0:0def0023f900 138
mbedobsza 0:0def0023f900 139
mbedobsza 0:0def0023f900 140
mbedobsza 0:0def0023f900 141
mbedobsza 0:0def0023f900 142
mbedobsza 0:0def0023f900 143
mbedobsza 0:0def0023f900 144
mbedobsza 0:0def0023f900 145
mbedobsza 0:0def0023f900 146
mbedobsza 0:0def0023f900 147
mbedobsza 0:0def0023f900 148
mbedobsza 0:0def0023f900 149
mbedobsza 0:0def0023f900 150
mbedobsza 0:0def0023f900 151
mbedobsza 0:0def0023f900 152
mbedobsza 0:0def0023f900 153
mbedobsza 0:0def0023f900 154
mbedobsza 0:0def0023f900 155
mbedobsza 0:0def0023f900 156
mbedobsza 0:0def0023f900 157
mbedobsza 0:0def0023f900 158
mbedobsza 0:0def0023f900 159
mbedobsza 0:0def0023f900 160
mbedobsza 0:0def0023f900 161