keniti akiba
/
spi_7esg_010
stm32l010 spi 1r
main.cpp@0:0bc87195b118, 2021-05-18 (annotated)
- Committer:
- caa45040
- Date:
- Tue May 18 04:20:09 2021 +0000
- Revision:
- 0:0bc87195b118
stm32l010 spi 1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
caa45040 | 0:0bc87195b118 | 1 | #include "mbed.h" |
caa45040 | 0:0bc87195b118 | 2 | |
caa45040 | 0:0bc87195b118 | 3 | //* ***** ***** |
caa45040 | 0:0bc87195b118 | 4 | //* * * * |
caa45040 | 0:0bc87195b118 | 5 | //* ****** * * |
caa45040 | 0:0bc87195b118 | 6 | //* * * * |
caa45040 | 0:0bc87195b118 | 7 | //* * * * |
caa45040 | 0:0bc87195b118 | 8 | //******** ***** ***** |
caa45040 | 0:0bc87195b118 | 9 | |
caa45040 | 0:0bc87195b118 | 10 | #define swclk1 PA_5 //A4 |
caa45040 | 0:0bc87195b118 | 11 | #define test01 PA_6 |
caa45040 | 0:0bc87195b118 | 12 | #define swdio1 PA_7 //A6 |
caa45040 | 0:0bc87195b118 | 13 | #define en1 PA_4 //A3 |
caa45040 | 0:0bc87195b118 | 14 | |
caa45040 | 0:0bc87195b118 | 15 | //DigitalOut test1(test01); |
caa45040 | 0:0bc87195b118 | 16 | |
caa45040 | 0:0bc87195b118 | 17 | //DigitalOut swdclk(swclk1); |
caa45040 | 0:0bc87195b118 | 18 | //DigitalOut swdio(swdio1); |
caa45040 | 0:0bc87195b118 | 19 | DigitalOut en(en1); |
caa45040 | 0:0bc87195b118 | 20 | |
caa45040 | 0:0bc87195b118 | 21 | SPI spi( swdio1 , test01, swclk1); // mosi, miso, sclk |
caa45040 | 0:0bc87195b118 | 22 | |
caa45040 | 0:0bc87195b118 | 23 | char seg[32][8] = { |
caa45040 | 0:0bc87195b118 | 24 | { 1,1,1,1,1,1,1,1 }, //0 @ -> ' ' |
caa45040 | 0:0bc87195b118 | 25 | { 0,0,0,0,0,1,0,1 }, //1 A o |
caa45040 | 0:0bc87195b118 | 26 | { 1,1,0,0,0,0,0,1 }, //2 B combined use "6" |
caa45040 | 0:0bc87195b118 | 27 | { 0,1,0,1,0,0,1,1 }, //3 C |
caa45040 | 0:0bc87195b118 | 28 | { 1,0,1,0,0,0,0,1 }, //4 D |
caa45040 | 0:0bc87195b118 | 29 | { 0,1,0,0,0,0,1,1 }, //5 E o |
caa45040 | 0:0bc87195b118 | 30 | { 0,1,0,0,0,1,1,1 }, //6 F |
caa45040 | 0:0bc87195b118 | 31 | { 0,1,0,1,0,0,0,1 }, //7 G |
caa45040 | 0:0bc87195b118 | 32 | |
caa45040 | 0:0bc87195b118 | 33 | { 1,0,0,0,0,1,0,1 }, //8 H o |
caa45040 | 0:0bc87195b118 | 34 | { 1,0,1,1,1,1,0,1 }, //9 I combined use "1" |
caa45040 | 0:0bc87195b118 | 35 | { 1,0,1,1,0,0,0,1 }, //10 J |
caa45040 | 0:0bc87195b118 | 36 | { 0,1,0,0,0,1,0,1 }, //11 K |
caa45040 | 0:0bc87195b118 | 37 | { 1,1,0,1,0,0,1,1 }, //12 L o |
caa45040 | 0:0bc87195b118 | 38 | { 0,1,1,1,0,1,0,1 }, //13 M |
caa45040 | 0:0bc87195b118 | 39 | { 0,0,0,1,0,1,0,1 }, //14 N o |
caa45040 | 0:0bc87195b118 | 40 | { 0,0,0,1,0,0,0,1 }, //15 O o combined use "0" |
caa45040 | 0:0bc87195b118 | 41 | |
caa45040 | 0:0bc87195b118 | 42 | { 0,0,0,0,0,1,1,1 }, //16 P |
caa45040 | 0:0bc87195b118 | 43 | { 0,0,0,0,1,1,0,1 }, //17 Q combined use "9" |
caa45040 | 0:0bc87195b118 | 44 | { 1,1,1,0,0,1,1,1 }, //18 R |
caa45040 | 0:0bc87195b118 | 45 | { 0,1,0,0,1,0,0,1 }, //19 S combined use "5" |
caa45040 | 0:0bc87195b118 | 46 | { 1,1,0,0,0,0,1,1 }, //20 T |
caa45040 | 0:0bc87195b118 | 47 | { 1,0,0,1,0,0,0,1 }, //21 U |
caa45040 | 0:0bc87195b118 | 48 | { 1,1,1,1,0,0,0,1 }, //22 V |
caa45040 | 0:0bc87195b118 | 49 | { 1,0,0,1,1,0,1,1 }, //23 W o |
caa45040 | 0:0bc87195b118 | 50 | { 1,1,0,0,1,1,0,1 }, //24 X |
caa45040 | 0:0bc87195b118 | 51 | |
caa45040 | 0:0bc87195b118 | 52 | { 1,0,0,0,1,0,0,1 }, //25 Y |
caa45040 | 0:0bc87195b118 | 53 | { 0,0,1,0,0,0,1,1 }, //26 Z combined use "2" |
caa45040 | 0:0bc87195b118 | 54 | { 0,0,1,0,1,0,0,1 }, //27 [ --> "3" |
caa45040 | 0:0bc87195b118 | 55 | { 1,0,0,0,1,1,0,1 }, //28 \ --> "4" |
caa45040 | 0:0bc87195b118 | 56 | { 0,0,0,1,1,1,0,1 }, //29 ] --> "7" |
caa45040 | 0:0bc87195b118 | 57 | { 0,0,0,0,0,0,0,1 }, //26 ^ --> "8" |
caa45040 | 0:0bc87195b118 | 58 | { 1,1,1,1,1,0,1,1 } //31 _ |
caa45040 | 0:0bc87195b118 | 59 | }; |
caa45040 | 0:0bc87195b118 | 60 | |
caa45040 | 0:0bc87195b118 | 61 | int vc; |
caa45040 | 0:0bc87195b118 | 62 | int ch_chvc(int s) |
caa45040 | 0:0bc87195b118 | 63 | { |
caa45040 | 0:0bc87195b118 | 64 | s = s - 64; |
caa45040 | 0:0bc87195b118 | 65 | |
caa45040 | 0:0bc87195b118 | 66 | vc =0; |
caa45040 | 0:0bc87195b118 | 67 | vc = vc | ((!(seg[s][7])) << 7); |
caa45040 | 0:0bc87195b118 | 68 | vc = vc | ((!(seg[s][3])) << 6); |
caa45040 | 0:0bc87195b118 | 69 | vc = vc | ((!(seg[s][2])) << 5); |
caa45040 | 0:0bc87195b118 | 70 | vc = vc | ((!(seg[s][4])) << 4); |
caa45040 | 0:0bc87195b118 | 71 | vc = vc | ((!(seg[s][5])) << 3); |
caa45040 | 0:0bc87195b118 | 72 | vc = vc | ((!(seg[s][6])) << 2); |
caa45040 | 0:0bc87195b118 | 73 | vc = vc | ((!(seg[s][1])) << 1); |
caa45040 | 0:0bc87195b118 | 74 | vc = vc | ((!(seg[s][0])) << 0); |
caa45040 | 0:0bc87195b118 | 75 | |
caa45040 | 0:0bc87195b118 | 76 | return(vc); |
caa45040 | 0:0bc87195b118 | 77 | }//ch_chvc |
caa45040 | 0:0bc87195b118 | 78 | |
caa45040 | 0:0bc87195b118 | 79 | //d int v; |
caa45040 | 0:0bc87195b118 | 80 | //d int rs; |
caa45040 | 0:0bc87195b118 | 81 | //d void seg1() |
caa45040 | 0:0bc87195b118 | 82 | //d { |
caa45040 | 0:0bc87195b118 | 83 | //d swdio=((v>>7)&1); swdclk=1;swdclk=0; //7 |
caa45040 | 0:0bc87195b118 | 84 | //d swdio=((v>>6)&1); swdclk=1;swdclk=0; //6 |
caa45040 | 0:0bc87195b118 | 85 | //d swdio=((v>>5)&1); swdclk=1;swdclk=0; //5 |
caa45040 | 0:0bc87195b118 | 86 | //d swdio=((v>>4)&1); swdclk=1;swdclk=0; //4 |
caa45040 | 0:0bc87195b118 | 87 | //d swdio=((v>>3)&1); swdclk=1;swdclk=0; //3 |
caa45040 | 0:0bc87195b118 | 88 | //d swdio=((v>>2)&1); swdclk=1;swdclk=0; //2 |
caa45040 | 0:0bc87195b118 | 89 | //d swdio=((v>>1)&1); swdclk=1;swdclk=0; //1 |
caa45040 | 0:0bc87195b118 | 90 | //d swdio=((v>>0)&1); swdclk=1;swdclk=0; //0 |
caa45040 | 0:0bc87195b118 | 91 | //d swdio=rs; |
caa45040 | 0:0bc87195b118 | 92 | //d en=1; |
caa45040 | 0:0bc87195b118 | 93 | //d wait_ms(1); |
caa45040 | 0:0bc87195b118 | 94 | //d en=0; |
caa45040 | 0:0bc87195b118 | 95 | //d }//seg1 |
caa45040 | 0:0bc87195b118 | 96 | |
caa45040 | 0:0bc87195b118 | 97 | int main() { |
caa45040 | 0:0bc87195b118 | 98 | |
caa45040 | 0:0bc87195b118 | 99 | //d en=1; //debug |
caa45040 | 0:0bc87195b118 | 100 | //d wait_ms(1000); //debug |
caa45040 | 0:0bc87195b118 | 101 | //d |
caa45040 | 0:0bc87195b118 | 102 | //d swdio=1; //debug |
caa45040 | 0:0bc87195b118 | 103 | //d wait_ms(1000); //debug |
caa45040 | 0:0bc87195b118 | 104 | |
caa45040 | 0:0bc87195b118 | 105 | //d en=0; |
caa45040 | 0:0bc87195b118 | 106 | //d swdio=0; |
caa45040 | 0:0bc87195b118 | 107 | //d for(int i=0;i<16;i++){ |
caa45040 | 0:0bc87195b118 | 108 | //d swdclk=1; |
caa45040 | 0:0bc87195b118 | 109 | //d wait_ms(15); |
caa45040 | 0:0bc87195b118 | 110 | //d swdclk=0; |
caa45040 | 0:0bc87195b118 | 111 | //d wait_ms(15); |
caa45040 | 0:0bc87195b118 | 112 | //d }//for |
caa45040 | 0:0bc87195b118 | 113 | |
caa45040 | 0:0bc87195b118 | 114 | spi.format(8,0); |
caa45040 | 0:0bc87195b118 | 115 | spi.frequency(1000000); |
caa45040 | 0:0bc87195b118 | 116 | |
caa45040 | 0:0bc87195b118 | 117 | en=0; |
caa45040 | 0:0bc87195b118 | 118 | |
caa45040 | 0:0bc87195b118 | 119 | int v; //バリュー 表示のパターン |
caa45040 | 0:0bc87195b118 | 120 | |
caa45040 | 0:0bc87195b118 | 121 | //v=ch_chvc('Y'); |
caa45040 | 0:0bc87195b118 | 122 | //spi.write(v);en=1;en=0; //debug |
caa45040 | 0:0bc87195b118 | 123 | //wait_ms(1000); |
caa45040 | 0:0bc87195b118 | 124 | |
caa45040 | 0:0bc87195b118 | 125 | v=ch_chvc('@'); |
caa45040 | 0:0bc87195b118 | 126 | spi.write(v);en=1;en=0; //debug |
caa45040 | 0:0bc87195b118 | 127 | wait_ms(1000); |
caa45040 | 0:0bc87195b118 | 128 | |
caa45040 | 0:0bc87195b118 | 129 | //en=1; //debug |
caa45040 | 0:0bc87195b118 | 130 | //wait_ms(1000); //debug |
caa45040 | 0:0bc87195b118 | 131 | |
caa45040 | 0:0bc87195b118 | 132 | //d en=0; |
caa45040 | 0:0bc87195b118 | 133 | //d for(int i=0;i<16;i++){ |
caa45040 | 0:0bc87195b118 | 134 | //d en=1; |
caa45040 | 0:0bc87195b118 | 135 | //d wait_ms(15); |
caa45040 | 0:0bc87195b118 | 136 | //d en=0; |
caa45040 | 0:0bc87195b118 | 137 | //d wait_ms(15); |
caa45040 | 0:0bc87195b118 | 138 | //d }//for |
caa45040 | 0:0bc87195b118 | 139 | |
caa45040 | 0:0bc87195b118 | 140 | //d v=0x55;seg1(); //debug |
caa45040 | 0:0bc87195b118 | 141 | //d wait_ms(1000); //debug |
caa45040 | 0:0bc87195b118 | 142 | //d v=0xaa;seg1(); //debug |
caa45040 | 0:0bc87195b118 | 143 | //d wait_ms(1000); //debug |
caa45040 | 0:0bc87195b118 | 144 | |
caa45040 | 0:0bc87195b118 | 145 | int ii; //ループカウンター |
caa45040 | 0:0bc87195b118 | 146 | //int v; //バリュー 表示のパターン |
caa45040 | 0:0bc87195b118 | 147 | |
caa45040 | 0:0bc87195b118 | 148 | //無限ループ |
caa45040 | 0:0bc87195b118 | 149 | while(1) { |
caa45040 | 0:0bc87195b118 | 150 | |
caa45040 | 0:0bc87195b118 | 151 | //0分 |
caa45040 | 0:0bc87195b118 | 152 | v=ch_chvc('O');spi.write(v);en=1;en=0; |
caa45040 | 0:0bc87195b118 | 153 | |
caa45040 | 0:0bc87195b118 | 154 | for(ii = 0;ii < 60;ii++){ |
caa45040 | 0:0bc87195b118 | 155 | wait_ms(1000); |
caa45040 | 0:0bc87195b118 | 156 | }//for |
caa45040 | 0:0bc87195b118 | 157 | |
caa45040 | 0:0bc87195b118 | 158 | //1分 |
caa45040 | 0:0bc87195b118 | 159 | v=ch_chvc('I');spi.write(v);en=1;en=0; |
caa45040 | 0:0bc87195b118 | 160 | |
caa45040 | 0:0bc87195b118 | 161 | for(ii = 0;ii < 60;ii++){ |
caa45040 | 0:0bc87195b118 | 162 | wait_ms(1000); |
caa45040 | 0:0bc87195b118 | 163 | }//for |
caa45040 | 0:0bc87195b118 | 164 | |
caa45040 | 0:0bc87195b118 | 165 | //2分 |
caa45040 | 0:0bc87195b118 | 166 | v=ch_chvc('Z');spi.write(v);en=1;en=0; |
caa45040 | 0:0bc87195b118 | 167 | |
caa45040 | 0:0bc87195b118 | 168 | for(ii = 0;ii < 60;ii++){ |
caa45040 | 0:0bc87195b118 | 169 | wait_ms(1000); |
caa45040 | 0:0bc87195b118 | 170 | }//for |
caa45040 | 0:0bc87195b118 | 171 | |
caa45040 | 0:0bc87195b118 | 172 | //3分 |
caa45040 | 0:0bc87195b118 | 173 | v=ch_chvc('[');spi.write(v);en=1;en=0; |
caa45040 | 0:0bc87195b118 | 174 | |
caa45040 | 0:0bc87195b118 | 175 | |
caa45040 | 0:0bc87195b118 | 176 | while(1){} //無限ループ |
caa45040 | 0:0bc87195b118 | 177 | //d while(1){ //debug |
caa45040 | 0:0bc87195b118 | 178 | //d swdclk=1; //debug |
caa45040 | 0:0bc87195b118 | 179 | //d wait_ms(1000); //debug |
caa45040 | 0:0bc87195b118 | 180 | //d swdclk=0; //debug |
caa45040 | 0:0bc87195b118 | 181 | //d wait_ms(1000); //debug |
caa45040 | 0:0bc87195b118 | 182 | //d }//while //debug |
caa45040 | 0:0bc87195b118 | 183 | |
caa45040 | 0:0bc87195b118 | 184 | |
caa45040 | 0:0bc87195b118 | 185 | //d while(1){ //debug |
caa45040 | 0:0bc87195b118 | 186 | //d en=1; //debug |
caa45040 | 0:0bc87195b118 | 187 | //d wait_ms(1000); //debug |
caa45040 | 0:0bc87195b118 | 188 | //d en=0; //debug |
caa45040 | 0:0bc87195b118 | 189 | //d wait_ms(1000); //debug |
caa45040 | 0:0bc87195b118 | 190 | //d }//while //debug |
caa45040 | 0:0bc87195b118 | 191 | |
caa45040 | 0:0bc87195b118 | 192 | }//while //無限ループ |
caa45040 | 0:0bc87195b118 | 193 | }//main |
caa45040 | 0:0bc87195b118 | 194 | |
caa45040 | 0:0bc87195b118 | 195 | //容量削減 |
caa45040 | 0:0bc87195b118 | 196 | void error(const char* format, ...){} |