ggez
my8x8RGB.cpp@0:b9ff8fc37c0e, 2016-10-22 (annotated)
- Committer:
- bankzamak
- Date:
- Sat Oct 22 07:08:42 2016 +0000
- Revision:
- 0:b9ff8fc37c0e
RMUMPU9250 FIBO naja
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bankzamak | 0:b9ff8fc37c0e | 1 | #include "mbed.h" |
bankzamak | 0:b9ff8fc37c0e | 2 | #include "my8x8RGB.h" |
bankzamak | 0:b9ff8fc37c0e | 3 | /**************Define*************************/ |
bankzamak | 0:b9ff8fc37c0e | 4 | DigitalOut RGB_RST(A2); |
bankzamak | 0:b9ff8fc37c0e | 5 | DigitalOut RGB_LAT(A1); |
bankzamak | 0:b9ff8fc37c0e | 6 | DigitalOut RGB_SB(A0); |
bankzamak | 0:b9ff8fc37c0e | 7 | |
bankzamak | 0:b9ff8fc37c0e | 8 | /*DigitalIn nn0(D7); |
bankzamak | 0:b9ff8fc37c0e | 9 | DigitalIn nn1(D2); |
bankzamak | 0:b9ff8fc37c0e | 10 | DigitalIn nn2(D6);*/ |
bankzamak | 0:b9ff8fc37c0e | 11 | SPI RGB_SPI(PB_15,PB_14,PB_13); |
bankzamak | 0:b9ff8fc37c0e | 12 | BusOut RGB_CP(D8,D9,D10,D11,D12,D13,D3,D4); |
bankzamak | 0:b9ff8fc37c0e | 13 | uint8_t RGBi= 0,RGBj= 0,RGBk= 0; |
bankzamak | 0:b9ff8fc37c0e | 14 | uint8_t RedWB=0,GreenWB=10,BlueWB=10; // percent | R,G,B calibrate change it if some color brighter than other |
bankzamak | 0:b9ff8fc37c0e | 15 | uint8_t display[8][8][4]= {0}; |
bankzamak | 0:b9ff8fc37c0e | 16 | uint8_t ii,jj,kk; |
bankzamak | 0:b9ff8fc37c0e | 17 | /*******************************************/ |
bankzamak | 0:b9ff8fc37c0e | 18 | void color_choose(int oasis[8][8][4]) |
bankzamak | 0:b9ff8fc37c0e | 19 | { |
bankzamak | 0:b9ff8fc37c0e | 20 | for(ii=0; ii<=7; ii++) { |
bankzamak | 0:b9ff8fc37c0e | 21 | for(jj=0; jj<=7; jj++) { |
bankzamak | 0:b9ff8fc37c0e | 22 | for(kk=0; kk<=7; kk++) { |
bankzamak | 0:b9ff8fc37c0e | 23 | display[ii][jj][kk]=oasis[ii][jj][kk]; |
bankzamak | 0:b9ff8fc37c0e | 24 | } |
bankzamak | 0:b9ff8fc37c0e | 25 | } |
bankzamak | 0:b9ff8fc37c0e | 26 | } |
bankzamak | 0:b9ff8fc37c0e | 27 | } |
bankzamak | 0:b9ff8fc37c0e | 28 | void INITRGB(char in[3]) |
bankzamak | 0:b9ff8fc37c0e | 29 | { |
bankzamak | 0:b9ff8fc37c0e | 30 | int wd; |
bankzamak | 0:b9ff8fc37c0e | 31 | RGB_RST =0; |
bankzamak | 0:b9ff8fc37c0e | 32 | RGB_RST =1; |
bankzamak | 0:b9ff8fc37c0e | 33 | RGB_SPI.frequency(20000000); |
bankzamak | 0:b9ff8fc37c0e | 34 | RGB_SPI.format(8,1); |
bankzamak | 0:b9ff8fc37c0e | 35 | RGB_LAT = 0; |
bankzamak | 0:b9ff8fc37c0e | 36 | RGB_SB =0; |
bankzamak | 0:b9ff8fc37c0e | 37 | int l=0; |
bankzamak | 0:b9ff8fc37c0e | 38 | |
bankzamak | 0:b9ff8fc37c0e | 39 | for (int i = 0; i<8; i++) { // Whitebalance......**important |
bankzamak | 0:b9ff8fc37c0e | 40 | for (int j = 0; j<3; j++) { |
bankzamak | 0:b9ff8fc37c0e | 41 | for (int k = 0; k<6; k++) { |
bankzamak | 0:b9ff8fc37c0e | 42 | // wd+=((in[j]<<k)&0b00100000)?1:0; |
bankzamak | 0:b9ff8fc37c0e | 43 | wd<<1; |
bankzamak | 0:b9ff8fc37c0e | 44 | l++; |
bankzamak | 0:b9ff8fc37c0e | 45 | if(l>=7) { |
bankzamak | 0:b9ff8fc37c0e | 46 | RGB_SPI.write(255); |
bankzamak | 0:b9ff8fc37c0e | 47 | l=0; |
bankzamak | 0:b9ff8fc37c0e | 48 | } |
bankzamak | 0:b9ff8fc37c0e | 49 | } |
bankzamak | 0:b9ff8fc37c0e | 50 | //RGB_SPI.write(255); |
bankzamak | 0:b9ff8fc37c0e | 51 | } |
bankzamak | 0:b9ff8fc37c0e | 52 | } |
bankzamak | 0:b9ff8fc37c0e | 53 | |
bankzamak | 0:b9ff8fc37c0e | 54 | RGB_LAT = 1; |
bankzamak | 0:b9ff8fc37c0e | 55 | RGB_LAT = 0; |
bankzamak | 0:b9ff8fc37c0e | 56 | |
bankzamak | 0:b9ff8fc37c0e | 57 | RGB_SPI.format(8,0); |
bankzamak | 0:b9ff8fc37c0e | 58 | } |
bankzamak | 0:b9ff8fc37c0e | 59 | |
bankzamak | 0:b9ff8fc37c0e | 60 | void Showscreen() |
bankzamak | 0:b9ff8fc37c0e | 61 | { |
bankzamak | 0:b9ff8fc37c0e | 62 | |
bankzamak | 0:b9ff8fc37c0e | 63 | RGB_SB =1; |
bankzamak | 0:b9ff8fc37c0e | 64 | for( RGBi=0; RGBi<8; RGBi++) { |
bankzamak | 0:b9ff8fc37c0e | 65 | for( RGBk=0; RGBk<8; RGBk++) { |
bankzamak | 0:b9ff8fc37c0e | 66 | for( RGBj=0; RGBj<3; RGBj++) { |
bankzamak | 0:b9ff8fc37c0e | 67 | RGB_SPI.write(display[RGBi][RGBk][RGBj]); |
bankzamak | 0:b9ff8fc37c0e | 68 | } |
bankzamak | 0:b9ff8fc37c0e | 69 | |
bankzamak | 0:b9ff8fc37c0e | 70 | } |
bankzamak | 0:b9ff8fc37c0e | 71 | RGB_CP = 0; |
bankzamak | 0:b9ff8fc37c0e | 72 | wait_us(15); |
bankzamak | 0:b9ff8fc37c0e | 73 | RGB_LAT = 1; |
bankzamak | 0:b9ff8fc37c0e | 74 | RGB_LAT = 0; |
bankzamak | 0:b9ff8fc37c0e | 75 | |
bankzamak | 0:b9ff8fc37c0e | 76 | RGB_CP = (0x01<<RGBi); |
bankzamak | 0:b9ff8fc37c0e | 77 | |
bankzamak | 0:b9ff8fc37c0e | 78 | } |
bankzamak | 0:b9ff8fc37c0e | 79 | } |
bankzamak | 0:b9ff8fc37c0e | 80 | /* |
bankzamak | 0:b9ff8fc37c0e | 81 | void screen_color(uint8_t R,uint8_t G,uint8_t B) |
bankzamak | 0:b9ff8fc37c0e | 82 | { |
bankzamak | 0:b9ff8fc37c0e | 83 | |
bankzamak | 0:b9ff8fc37c0e | 84 | for(uint8_t Colum=0; Colum<8; Colum++) { |
bankzamak | 0:b9ff8fc37c0e | 85 | for(uint8_t Row=0; Row<8; Row++) { |
bankzamak | 0:b9ff8fc37c0e | 86 | display[Colum][Row][2]=R*RedWB/100; |
bankzamak | 0:b9ff8fc37c0e | 87 | display[Colum][Row][1]=G; |
bankzamak | 0:b9ff8fc37c0e | 88 | display[Colum][Row][0]=B*BlueWB/100; |
bankzamak | 0:b9ff8fc37c0e | 89 | } |
bankzamak | 0:b9ff8fc37c0e | 90 | } |
bankzamak | 0:b9ff8fc37c0e | 91 | |
bankzamak | 0:b9ff8fc37c0e | 92 | } |
bankzamak | 0:b9ff8fc37c0e | 93 | void screen_off() |
bankzamak | 0:b9ff8fc37c0e | 94 | { |
bankzamak | 0:b9ff8fc37c0e | 95 | |
bankzamak | 0:b9ff8fc37c0e | 96 | for(uint8_t Colum=0; Colum<8; Colum++) { |
bankzamak | 0:b9ff8fc37c0e | 97 | for(uint8_t Row=0; Row<8; Row++) { |
bankzamak | 0:b9ff8fc37c0e | 98 | display[Colum][Row][2]=0; |
bankzamak | 0:b9ff8fc37c0e | 99 | display[Colum][Row][1]=0; |
bankzamak | 0:b9ff8fc37c0e | 100 | display[Colum][Row][0]=0; |
bankzamak | 0:b9ff8fc37c0e | 101 | } |
bankzamak | 0:b9ff8fc37c0e | 102 | } |
bankzamak | 0:b9ff8fc37c0e | 103 | Showscreen(); |
bankzamak | 0:b9ff8fc37c0e | 104 | } |
bankzamak | 0:b9ff8fc37c0e | 105 | |
bankzamak | 0:b9ff8fc37c0e | 106 | |
bankzamak | 0:b9ff8fc37c0e | 107 | void RGB_led(uint8_t Colum,uint8_t Row,char color,uint8_t brightness) |
bankzamak | 0:b9ff8fc37c0e | 108 | { |
bankzamak | 0:b9ff8fc37c0e | 109 | uint8_t c; |
bankzamak | 0:b9ff8fc37c0e | 110 | switch (color) { |
bankzamak | 0:b9ff8fc37c0e | 111 | case 'R': |
bankzamak | 0:b9ff8fc37c0e | 112 | c=2; |
bankzamak | 0:b9ff8fc37c0e | 113 | break; |
bankzamak | 0:b9ff8fc37c0e | 114 | case 'G': |
bankzamak | 0:b9ff8fc37c0e | 115 | c=1; |
bankzamak | 0:b9ff8fc37c0e | 116 | break; |
bankzamak | 0:b9ff8fc37c0e | 117 | case 'B': |
bankzamak | 0:b9ff8fc37c0e | 118 | c=0; |
bankzamak | 0:b9ff8fc37c0e | 119 | break; |
bankzamak | 0:b9ff8fc37c0e | 120 | } |
bankzamak | 0:b9ff8fc37c0e | 121 | display[Colum][Row][c]=brightness; |
bankzamak | 0:b9ff8fc37c0e | 122 | } |
bankzamak | 0:b9ff8fc37c0e | 123 | |
bankzamak | 0:b9ff8fc37c0e | 124 | |
bankzamak | 0:b9ff8fc37c0e | 125 | void rgb_point(uint8_t Colum,uint8_t Row,uint8_t R,uint8_t G,uint8_t B) |
bankzamak | 0:b9ff8fc37c0e | 126 | { |
bankzamak | 0:b9ff8fc37c0e | 127 | display[Colum][Row][2]=R*RedWB/100; |
bankzamak | 0:b9ff8fc37c0e | 128 | display[Colum][Row][1]=G; |
bankzamak | 0:b9ff8fc37c0e | 129 | display[Colum][Row][0]=B*BlueWB/100; |
bankzamak | 0:b9ff8fc37c0e | 130 | } |
bankzamak | 0:b9ff8fc37c0e | 131 | |
bankzamak | 0:b9ff8fc37c0e | 132 | */ |
bankzamak | 0:b9ff8fc37c0e | 133 | |
bankzamak | 0:b9ff8fc37c0e | 134 | |
bankzamak | 0:b9ff8fc37c0e | 135 | |
bankzamak | 0:b9ff8fc37c0e | 136 | |
bankzamak | 0:b9ff8fc37c0e | 137 | |
bankzamak | 0:b9ff8fc37c0e | 138 | |
bankzamak | 0:b9ff8fc37c0e | 139 | |
bankzamak | 0:b9ff8fc37c0e | 140 | |
bankzamak | 0:b9ff8fc37c0e | 141 | |
bankzamak | 0:b9ff8fc37c0e | 142 | |
bankzamak | 0:b9ff8fc37c0e | 143 | |
bankzamak | 0:b9ff8fc37c0e | 144 | |
bankzamak | 0:b9ff8fc37c0e | 145 | |
bankzamak | 0:b9ff8fc37c0e | 146 | |
bankzamak | 0:b9ff8fc37c0e | 147 | |
bankzamak | 0:b9ff8fc37c0e | 148 | |
bankzamak | 0:b9ff8fc37c0e | 149 | |
bankzamak | 0:b9ff8fc37c0e | 150 | |
bankzamak | 0:b9ff8fc37c0e | 151 | |
bankzamak | 0:b9ff8fc37c0e | 152 | |
bankzamak | 0:b9ff8fc37c0e | 153 | |
bankzamak | 0:b9ff8fc37c0e | 154 | |
bankzamak | 0:b9ff8fc37c0e | 155 | |
bankzamak | 0:b9ff8fc37c0e | 156 | |
bankzamak | 0:b9ff8fc37c0e | 157 | |
bankzamak | 0:b9ff8fc37c0e | 158 | |
bankzamak | 0:b9ff8fc37c0e | 159 | |
bankzamak | 0:b9ff8fc37c0e | 160 | |
bankzamak | 0:b9ff8fc37c0e | 161 | |
bankzamak | 0:b9ff8fc37c0e | 162 | |
bankzamak | 0:b9ff8fc37c0e | 163 | |
bankzamak | 0:b9ff8fc37c0e | 164 | |
bankzamak | 0:b9ff8fc37c0e | 165 | |
bankzamak | 0:b9ff8fc37c0e | 166 | |
bankzamak | 0:b9ff8fc37c0e | 167 | |
bankzamak | 0:b9ff8fc37c0e | 168 | |
bankzamak | 0:b9ff8fc37c0e | 169 | |
bankzamak | 0:b9ff8fc37c0e | 170 |