有哉 藤田 / Mbed 2 deprecated 2020_verserwriter

Dependencies:   mbed

Committer:
yu_yu
Date:
Tue Oct 13 14:21:42 2020 +0000
Revision:
0:779a9ff709b7
Child:
1:dc680896cbaa
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yu_yu 0:779a9ff709b7 1 #include "mbed.h"
yu_yu 0:779a9ff709b7 2 #include "hanabi.h"
yu_yu 0:779a9ff709b7 3
yu_yu 0:779a9ff709b7 4 #define BAR0 0b00000001
yu_yu 0:779a9ff709b7 5 #define BAR1 0b00000010
yu_yu 0:779a9ff709b7 6 #define BAR2 0b00000100
yu_yu 0:779a9ff709b7 7 #define BAR3 0b00001000
yu_yu 0:779a9ff709b7 8 #define BAR4 0b00010000
yu_yu 0:779a9ff709b7 9 #define BAR5 0b00000001
yu_yu 0:779a9ff709b7 10 #define BAR6 0b00000010
yu_yu 0:779a9ff709b7 11 #define BAR7 0b00000100
yu_yu 0:779a9ff709b7 12 #define BAR8 0b00001000
yu_yu 0:779a9ff709b7 13 #define BAR9 0b00010000
yu_yu 0:779a9ff709b7 14
yu_yu 0:779a9ff709b7 15 #define TIME 25 //us
yu_yu 0:779a9ff709b7 16
yu_yu 0:779a9ff709b7 17
yu_yu 0:779a9ff709b7 18 DigitalOut red(D12);
yu_yu 0:779a9ff709b7 19 DigitalOut blue(D11);
yu_yu 0:779a9ff709b7 20 DigitalOut green(D10);
yu_yu 0:779a9ff709b7 21
yu_yu 0:779a9ff709b7 22 DigitalOut bar0(A0);
yu_yu 0:779a9ff709b7 23 DigitalOut bar1(A1);
yu_yu 0:779a9ff709b7 24 DigitalOut bar2(A2);
yu_yu 0:779a9ff709b7 25 DigitalOut bar3(PA_8);
yu_yu 0:779a9ff709b7 26 DigitalOut bar4(PF_1);
yu_yu 0:779a9ff709b7 27 DigitalOut bar5(PF_0);
yu_yu 0:779a9ff709b7 28 DigitalOut bar6(PB_1);
yu_yu 0:779a9ff709b7 29 DigitalOut bar7(PB_0);
yu_yu 0:779a9ff709b7 30 DigitalOut bar8(PA_12);
yu_yu 0:779a9ff709b7 31 DigitalOut bar9(PA_10);
yu_yu 0:779a9ff709b7 32
yu_yu 0:779a9ff709b7 33 DigitalIn sw0(D13);
yu_yu 0:779a9ff709b7 34 DigitalIn sw1(A6);
yu_yu 0:779a9ff709b7 35
yu_yu 0:779a9ff709b7 36 Serial pc(USBTX, USBRX);
yu_yu 0:779a9ff709b7 37 Ticker timer;
yu_yu 0:779a9ff709b7 38
yu_yu 0:779a9ff709b7 39 char RGB(int, char, char);
yu_yu 0:779a9ff709b7 40 void TMR0_ISR();
yu_yu 0:779a9ff709b7 41
yu_yu 0:779a9ff709b7 42 int main(){
yu_yu 0:779a9ff709b7 43 bool tim_flag = 0;
yu_yu 0:779a9ff709b7 44 char tim = 25;
yu_yu 0:779a9ff709b7 45 timer.attach_us(&TMR0_ISR, tim);
yu_yu 0:779a9ff709b7 46 pc.baud(115200);
yu_yu 0:779a9ff709b7 47 while(1){
yu_yu 0:779a9ff709b7 48 if(sw0){
yu_yu 0:779a9ff709b7 49 tim --;
yu_yu 0:779a9ff709b7 50 tim_flag = 1;
yu_yu 0:779a9ff709b7 51 }else if(sw1){
yu_yu 0:779a9ff709b7 52 tim ++;
yu_yu 0:779a9ff709b7 53 tim_flag = 1;
yu_yu 0:779a9ff709b7 54 }
yu_yu 0:779a9ff709b7 55
yu_yu 0:779a9ff709b7 56 if(tim_flag){
yu_yu 0:779a9ff709b7 57 pc.printf("period: %d, freq: %f\n", tim, float(1/tim)
yu_yu 0:779a9ff709b7 58 );
yu_yu 0:779a9ff709b7 59 timer.detach();
yu_yu 0:779a9ff709b7 60 timer.attach_us(&TMR0_ISR, tim);
yu_yu 0:779a9ff709b7 61 tim_flag = 0;
yu_yu 0:779a9ff709b7 62 }
yu_yu 0:779a9ff709b7 63 }
yu_yu 0:779a9ff709b7 64 }
yu_yu 0:779a9ff709b7 65
yu_yu 0:779a9ff709b7 66 char RGB(int row, char col, char bar){
yu_yu 0:779a9ff709b7 67 char color;
yu_yu 0:779a9ff709b7 68 char judge_red = 0, judge_green = 0, judge_blue = 0;
yu_yu 0:779a9ff709b7 69
yu_yu 0:779a9ff709b7 70 judge_red = red0[row][col] & bar;
yu_yu 0:779a9ff709b7 71 judge_green = green0[row][col & bar];
yu_yu 0:779a9ff709b7 72 judge_blue = blue0[row][col] & bar;
yu_yu 0:779a9ff709b7 73
yu_yu 0:779a9ff709b7 74 bool flag = 1;
yu_yu 0:779a9ff709b7 75
yu_yu 0:779a9ff709b7 76 if(judge_red && judge_green && judge_blue){
yu_yu 0:779a9ff709b7 77 red=0;
yu_yu 0:779a9ff709b7 78 green=0;
yu_yu 0:779a9ff709b7 79 blue=0;
yu_yu 0:779a9ff709b7 80 }else if(judge_red && judge_green){
yu_yu 0:779a9ff709b7 81 red=0;
yu_yu 0:779a9ff709b7 82 green=0;
yu_yu 0:779a9ff709b7 83 blue=1;
yu_yu 0:779a9ff709b7 84 }else if(judge_red && judge_blue){
yu_yu 0:779a9ff709b7 85 red=0;
yu_yu 0:779a9ff709b7 86 green=1;
yu_yu 0:779a9ff709b7 87 blue=0;
yu_yu 0:779a9ff709b7 88 }else if(judge_blue && judge_green){
yu_yu 0:779a9ff709b7 89 red=1;
yu_yu 0:779a9ff709b7 90 green=0;
yu_yu 0:779a9ff709b7 91 blue=0;
yu_yu 0:779a9ff709b7 92 }else if(judge_red){
yu_yu 0:779a9ff709b7 93 red=0;
yu_yu 0:779a9ff709b7 94 green=1;
yu_yu 0:779a9ff709b7 95 blue=1;
yu_yu 0:779a9ff709b7 96 }else if(judge_green){
yu_yu 0:779a9ff709b7 97 red=1;
yu_yu 0:779a9ff709b7 98 green=0;
yu_yu 0:779a9ff709b7 99 blue=1;
yu_yu 0:779a9ff709b7 100 }else if(judge_blue){
yu_yu 0:779a9ff709b7 101 red=1;
yu_yu 0:779a9ff709b7 102 green=1;
yu_yu 0:779a9ff709b7 103 blue=0;
yu_yu 0:779a9ff709b7 104 }else{
yu_yu 0:779a9ff709b7 105 red=1;
yu_yu 0:779a9ff709b7 106 green=1;
yu_yu 0:779a9ff709b7 107 blue=1;
yu_yu 0:779a9ff709b7 108 flag = 0;
yu_yu 0:779a9ff709b7 109 }
yu_yu 0:779a9ff709b7 110 return flag;
yu_yu 0:779a9ff709b7 111 }
yu_yu 0:779a9ff709b7 112
yu_yu 0:779a9ff709b7 113 void TMR0_ISR(void)
yu_yu 0:779a9ff709b7 114 {
yu_yu 0:779a9ff709b7 115 static char i = 0;
yu_yu 0:779a9ff709b7 116 static short j = 0;
yu_yu 0:779a9ff709b7 117 switch(i){
yu_yu 0:779a9ff709b7 118 case 0:
yu_yu 0:779a9ff709b7 119 bar0 = RGB(j, 0, BAR0);
yu_yu 0:779a9ff709b7 120 break;
yu_yu 0:779a9ff709b7 121 case 1:
yu_yu 0:779a9ff709b7 122 bar1 = RGB(j, 0, BAR1);
yu_yu 0:779a9ff709b7 123 break;
yu_yu 0:779a9ff709b7 124 case 2:
yu_yu 0:779a9ff709b7 125 bar2 = RGB(j, 0, BAR2);
yu_yu 0:779a9ff709b7 126 break;
yu_yu 0:779a9ff709b7 127 case 3:
yu_yu 0:779a9ff709b7 128 bar3 = RGB(j, 0, BAR3);
yu_yu 0:779a9ff709b7 129 break;
yu_yu 0:779a9ff709b7 130 case 4:
yu_yu 0:779a9ff709b7 131 bar4 = RGB(j, 0, BAR4);
yu_yu 0:779a9ff709b7 132 break;
yu_yu 0:779a9ff709b7 133 case 5:
yu_yu 0:779a9ff709b7 134 bar5 = RGB(j, 1, BAR5);
yu_yu 0:779a9ff709b7 135 break;
yu_yu 0:779a9ff709b7 136 case 6:
yu_yu 0:779a9ff709b7 137 bar6 = RGB(j, 1, BAR6);
yu_yu 0:779a9ff709b7 138 break;
yu_yu 0:779a9ff709b7 139 case 7:
yu_yu 0:779a9ff709b7 140 bar7 = RGB(j, 1, BAR7);
yu_yu 0:779a9ff709b7 141 break;
yu_yu 0:779a9ff709b7 142 case 8:
yu_yu 0:779a9ff709b7 143 bar8 = RGB(j, 1, BAR8);
yu_yu 0:779a9ff709b7 144 break;
yu_yu 0:779a9ff709b7 145 case 9:
yu_yu 0:779a9ff709b7 146 bar9 = RGB(j, 1, BAR9);
yu_yu 0:779a9ff709b7 147 break;
yu_yu 0:779a9ff709b7 148 }
yu_yu 0:779a9ff709b7 149
yu_yu 0:779a9ff709b7 150 i++;
yu_yu 0:779a9ff709b7 151 j++;
yu_yu 0:779a9ff709b7 152 if(i > 9)
yu_yu 0:779a9ff709b7 153 i = 0;
yu_yu 0:779a9ff709b7 154 if(j > 180)
yu_yu 0:779a9ff709b7 155 j = 0;
yu_yu 0:779a9ff709b7 156
yu_yu 0:779a9ff709b7 157 }
yu_yu 0:779a9ff709b7 158