keniti akiba
/
gpio_7seg_010_2
stm32l010 gpio 7seg r2
main.cpp@0:e78400378e18, 2021-06-22 (annotated)
- Committer:
- caa45040
- Date:
- Tue Jun 22 08:15:55 2021 +0000
- Revision:
- 0:e78400378e18
stm32l010 gpio 7seg 2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
caa45040 | 0:e78400378e18 | 1 | #include "mbed.h" |
caa45040 | 0:e78400378e18 | 2 | |
caa45040 | 0:e78400378e18 | 3 | //* ***** ***** |
caa45040 | 0:e78400378e18 | 4 | //* * * * |
caa45040 | 0:e78400378e18 | 5 | //* ****** * * |
caa45040 | 0:e78400378e18 | 6 | //* * * * |
caa45040 | 0:e78400378e18 | 7 | //* * * * |
caa45040 | 0:e78400378e18 | 8 | //******** ***** ***** |
caa45040 | 0:e78400378e18 | 9 | |
caa45040 | 0:e78400378e18 | 10 | #define swclk1 PA_5 //A4 |
caa45040 | 0:e78400378e18 | 11 | #define swdio1 PA_7 //A6 |
caa45040 | 0:e78400378e18 | 12 | #define en1 PA_4 //A3 |
caa45040 | 0:e78400378e18 | 13 | |
caa45040 | 0:e78400378e18 | 14 | DigitalOut swdclk(swclk1); |
caa45040 | 0:e78400378e18 | 15 | DigitalOut swdio(swdio1); |
caa45040 | 0:e78400378e18 | 16 | DigitalOut en(en1); |
caa45040 | 0:e78400378e18 | 17 | |
caa45040 | 0:e78400378e18 | 18 | #define s60() for(ii=0;ii<60;ii++)wait_ms(1000); |
caa45040 | 0:e78400378e18 | 19 | |
caa45040 | 0:e78400378e18 | 20 | char seg[32] = { |
caa45040 | 0:e78400378e18 | 21 | 0x00 , //0 @ -> ' ' |
caa45040 | 0:e78400378e18 | 22 | 0x77 , //1 A o |
caa45040 | 0:e78400378e18 | 23 | 0x7c , //2 B combined use "6" |
caa45040 | 0:e78400378e18 | 24 | 0x39 , //3 C |
caa45040 | 0:e78400378e18 | 25 | 0x5e , //4 D |
caa45040 | 0:e78400378e18 | 26 | 0x79 , //5 E o |
caa45040 | 0:e78400378e18 | 27 | 0x71 , //6 F |
caa45040 | 0:e78400378e18 | 28 | 0x3d , //7 G |
caa45040 | 0:e78400378e18 | 29 | |
caa45040 | 0:e78400378e18 | 30 | 0x76 , //8 H o |
caa45040 | 0:e78400378e18 | 31 | 0x06 , //9 I combined use "1" |
caa45040 | 0:e78400378e18 | 32 | 0x1e , //10 J |
caa45040 | 0:e78400378e18 | 33 | 0x75 , //11 K |
caa45040 | 0:e78400378e18 | 34 | 0x38 , //12 L o |
caa45040 | 0:e78400378e18 | 35 | 0x15 , //13 M |
caa45040 | 0:e78400378e18 | 36 | 0x37 , //14 N o |
caa45040 | 0:e78400378e18 | 37 | 0x3f , //15 O o combined use "0" |
caa45040 | 0:e78400378e18 | 38 | |
caa45040 | 0:e78400378e18 | 39 | 0x73 , //16 P |
caa45040 | 0:e78400378e18 | 40 | 0x67 , //17 Q combined use "9" |
caa45040 | 0:e78400378e18 | 41 | 0x50 , //18 R |
caa45040 | 0:e78400378e18 | 42 | 0x6d , //19 S combined use "5" |
caa45040 | 0:e78400378e18 | 43 | 0x78 , //20 T |
caa45040 | 0:e78400378e18 | 44 | 0x3e , //21 U |
caa45040 | 0:e78400378e18 | 45 | 0x1c , //22 V |
caa45040 | 0:e78400378e18 | 46 | 0x2a , //23 W o |
caa45040 | 0:e78400378e18 | 47 | 0x64 , //24 X |
caa45040 | 0:e78400378e18 | 48 | |
caa45040 | 0:e78400378e18 | 49 | 0x6e , //25 Y |
caa45040 | 0:e78400378e18 | 50 | 0x5b , //26 Z combined use "2" |
caa45040 | 0:e78400378e18 | 51 | 0x4f , //27 [ --> "3" |
caa45040 | 0:e78400378e18 | 52 | 0x66 , //28 \ --> "4" |
caa45040 | 0:e78400378e18 | 53 | 0x27 , //29 ] --> "7" |
caa45040 | 0:e78400378e18 | 54 | 0x7f , //26 ^ --> "8" |
caa45040 | 0:e78400378e18 | 55 | 0x08 //31 _ |
caa45040 | 0:e78400378e18 | 56 | }; |
caa45040 | 0:e78400378e18 | 57 | |
caa45040 | 0:e78400378e18 | 58 | // 12345678 12345678 12345678 12345678 |
caa45040 | 0:e78400378e18 | 59 | char b8[8] = {0b10000000,0b01000000,0b00100000,0b00010000, |
caa45040 | 0:e78400378e18 | 60 | 0b00001000,0b00000100,0b00000010,0b00000001 }; |
caa45040 | 0:e78400378e18 | 61 | |
caa45040 | 0:e78400378e18 | 62 | void seg1(char v) |
caa45040 | 0:e78400378e18 | 63 | { |
caa45040 | 0:e78400378e18 | 64 | v=seg[v-64]; |
caa45040 | 0:e78400378e18 | 65 | for(int jj=0;jj<8;jj++){ |
caa45040 | 0:e78400378e18 | 66 | if( (v & b8[jj]) == 0 ){ |
caa45040 | 0:e78400378e18 | 67 | swdio=0; //ビットが0 |
caa45040 | 0:e78400378e18 | 68 | } else { |
caa45040 | 0:e78400378e18 | 69 | swdio=1; //ビットが1 |
caa45040 | 0:e78400378e18 | 70 | }//endif |
caa45040 | 0:e78400378e18 | 71 | swdclk=1;swdclk=0; //clk |
caa45040 | 0:e78400378e18 | 72 | }//for |
caa45040 | 0:e78400378e18 | 73 | en=1; |
caa45040 | 0:e78400378e18 | 74 | en=0; |
caa45040 | 0:e78400378e18 | 75 | }//seg1 |
caa45040 | 0:e78400378e18 | 76 | |
caa45040 | 0:e78400378e18 | 77 | int main() { |
caa45040 | 0:e78400378e18 | 78 | |
caa45040 | 0:e78400378e18 | 79 | int ii; //ループカウンター |
caa45040 | 0:e78400378e18 | 80 | |
caa45040 | 0:e78400378e18 | 81 | en=0; |
caa45040 | 0:e78400378e18 | 82 | swdclk=0; |
caa45040 | 0:e78400378e18 | 83 | |
caa45040 | 0:e78400378e18 | 84 | //0分 |
caa45040 | 0:e78400378e18 | 85 | seg1('O'); |
caa45040 | 0:e78400378e18 | 86 | s60(); |
caa45040 | 0:e78400378e18 | 87 | |
caa45040 | 0:e78400378e18 | 88 | //1分 |
caa45040 | 0:e78400378e18 | 89 | seg1('I'); |
caa45040 | 0:e78400378e18 | 90 | s60(); |
caa45040 | 0:e78400378e18 | 91 | |
caa45040 | 0:e78400378e18 | 92 | //2分 |
caa45040 | 0:e78400378e18 | 93 | seg1('Z'); |
caa45040 | 0:e78400378e18 | 94 | s60(); |
caa45040 | 0:e78400378e18 | 95 | |
caa45040 | 0:e78400378e18 | 96 | //3分 |
caa45040 | 0:e78400378e18 | 97 | seg1('['); |
caa45040 | 0:e78400378e18 | 98 | |
caa45040 | 0:e78400378e18 | 99 | while(1){} //無限ループ |
caa45040 | 0:e78400378e18 | 100 | |
caa45040 | 0:e78400378e18 | 101 | }//main |