B03 / Mbed 2 deprecated testfirst

Dependencies:   mbed

Committer:
wonner163
Date:
Mon Dec 11 08:43:44 2017 +0000
Revision:
0:4562b55bbb43
12

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wonner163 0:4562b55bbb43 1 #include "mbed.h"
wonner163 0:4562b55bbb43 2 #include "ColorMbed.h"
wonner163 0:4562b55bbb43 3
wonner163 0:4562b55bbb43 4 SPI dot_matrix(D11,NC,D13); //mosi miso sclk
wonner163 0:4562b55bbb43 5 DigitalOut lat(PA_12);
wonner163 0:4562b55bbb43 6 DigitalOut sb(PA_11);
wonner163 0:4562b55bbb43 7 DigitalOut rst(D10);
wonner163 0:4562b55bbb43 8 BusOut open_line(D2,D3,D4,D5,D6,D7,D8,D9);
wonner163 0:4562b55bbb43 9 //c0 c1 c2 c3 c4 c5 c6 c7 dont foget d7
wonner163 0:4562b55bbb43 10 uint8_t temp;
wonner163 0:4562b55bbb43 11 uint8_t position[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
wonner163 0:4562b55bbb43 12 int line[8] = {1,2,4,8,16,32,64,128};
wonner163 0:4562b55bbb43 13
wonner163 0:4562b55bbb43 14 void ColorMbed::init(){
wonner163 0:4562b55bbb43 15 dot_matrix.frequency(1000000);
wonner163 0:4562b55bbb43 16 uint8_t wb[3] = {255,255,255};
wonner163 0:4562b55bbb43 17 rst = 1;
wonner163 0:4562b55bbb43 18 wait(0.5);
wonner163 0:4562b55bbb43 19 rst = 0;
wonner163 0:4562b55bbb43 20 wait(0.5);
wonner163 0:4562b55bbb43 21 rst = 1;
wonner163 0:4562b55bbb43 22 wait(0.5);
wonner163 0:4562b55bbb43 23 sb = 0; // 6 bit
wonner163 0:4562b55bbb43 24 for(int i = 0; i<8; i++){
wonner163 0:4562b55bbb43 25 dot_matrix.write(wb[0]);
wonner163 0:4562b55bbb43 26 dot_matrix.write(wb[1]);
wonner163 0:4562b55bbb43 27 dot_matrix.write(wb[2]);
wonner163 0:4562b55bbb43 28 }
wonner163 0:4562b55bbb43 29 open_line = 0;
wonner163 0:4562b55bbb43 30 sb = 1; // 8 bit
wonner163 0:4562b55bbb43 31 }
wonner163 0:4562b55bbb43 32
wonner163 0:4562b55bbb43 33 // *********************** configur later *********************************
wonner163 0:4562b55bbb43 34 void ColorMbed::display_dot(int row,int col ,uint8_t *color){
wonner163 0:4562b55bbb43 35 //for(int j = 0; j<8;j++){
wonner163 0:4562b55bbb43 36 temp = position[col];
wonner163 0:4562b55bbb43 37 for(int i = 0 ; i< 8 ; i++){
wonner163 0:4562b55bbb43 38 if(temp & 0x80){
wonner163 0:4562b55bbb43 39 dot_matrix.write(color[0]);
wonner163 0:4562b55bbb43 40 dot_matrix.write(color[1]);
wonner163 0:4562b55bbb43 41 dot_matrix.write(color[2]);
wonner163 0:4562b55bbb43 42 }
wonner163 0:4562b55bbb43 43 else{
wonner163 0:4562b55bbb43 44 dot_matrix.write(0);
wonner163 0:4562b55bbb43 45 dot_matrix.write(0);
wonner163 0:4562b55bbb43 46 dot_matrix.write(0);
wonner163 0:4562b55bbb43 47 }
wonner163 0:4562b55bbb43 48 temp = temp << 1;
wonner163 0:4562b55bbb43 49 }
wonner163 0:4562b55bbb43 50 lat = 1;
wonner163 0:4562b55bbb43 51 lat = 0;
wonner163 0:4562b55bbb43 52 open_line = line[row];
wonner163 0:4562b55bbb43 53 wait(0.6);
wonner163 0:4562b55bbb43 54 open_line = 0;
wonner163 0:4562b55bbb43 55 wait(0.4);
wonner163 0:4562b55bbb43 56 //}
wonner163 0:4562b55bbb43 57 }
wonner163 0:4562b55bbb43 58
wonner163 0:4562b55bbb43 59 // void ColorMbed::display_ship(int row,int column,int type,uint8_t *color){
wonner163 0:4562b55bbb43 60 // if(type == 1){
wonner163 0:4562b55bbb43 61 //
wonner163 0:4562b55bbb43 62 // }
wonner163 0:4562b55bbb43 63 // else if(type == 2){
wonner163 0:4562b55bbb43 64 //
wonner163 0:4562b55bbb43 65 // }
wonner163 0:4562b55bbb43 66 // }
wonner163 0:4562b55bbb43 67
wonner163 0:4562b55bbb43 68 void ColorMbed::display_pic(uint8_t *pic,uint8_t *color){
wonner163 0:4562b55bbb43 69 for(int j = 0;j<8;j++){
wonner163 0:4562b55bbb43 70 temp = pic[j];
wonner163 0:4562b55bbb43 71 for(int i = 0; i<8; i++){
wonner163 0:4562b55bbb43 72 if(temp & 0x80){
wonner163 0:4562b55bbb43 73 dot_matrix.write(color[0]);
wonner163 0:4562b55bbb43 74 dot_matrix.write(color[1]);
wonner163 0:4562b55bbb43 75 dot_matrix.write(color[2]);
wonner163 0:4562b55bbb43 76 }
wonner163 0:4562b55bbb43 77 else{
wonner163 0:4562b55bbb43 78 dot_matrix.write(0);
wonner163 0:4562b55bbb43 79 dot_matrix.write(0);
wonner163 0:4562b55bbb43 80 dot_matrix.write(0);
wonner163 0:4562b55bbb43 81 }
wonner163 0:4562b55bbb43 82 temp = temp << 1;
wonner163 0:4562b55bbb43 83 }
wonner163 0:4562b55bbb43 84 lat = 1;
wonner163 0:4562b55bbb43 85 lat = 0;
wonner163 0:4562b55bbb43 86 open_line = line[j];
wonner163 0:4562b55bbb43 87 wait(0.001);
wonner163 0:4562b55bbb43 88 open_line = 0;
wonner163 0:4562b55bbb43 89 }
wonner163 0:4562b55bbb43 90 }
wonner163 0:4562b55bbb43 91
wonner163 0:4562b55bbb43 92 // *********************** private function *********************************
wonner163 0:4562b55bbb43 93
wonner163 0:4562b55bbb43 94
wonner163 0:4562b55bbb43 95 int ColorMbed::_power(int number , int power){
wonner163 0:4562b55bbb43 96 int i = 0;
wonner163 0:4562b55bbb43 97 int number1 = number;
wonner163 0:4562b55bbb43 98 if(power == 0){return 1;}
wonner163 0:4562b55bbb43 99 for(i = 1 ; i <= power ; i++ ){
wonner163 0:4562b55bbb43 100 if(power == 1){return number;}
wonner163 0:4562b55bbb43 101 if(i == 1){number = number * 1;}
wonner163 0:4562b55bbb43 102 else{number1 = number1 * number;}
wonner163 0:4562b55bbb43 103 }
wonner163 0:4562b55bbb43 104 return number1;
wonner163 0:4562b55bbb43 105 }