059,062
Dependencies: mbed
main.cpp
- Committer:
- larmedo
- Date:
- 2015-12-08
- Revision:
- 0:681bc2aada6f
- Child:
- 1:974e31e928ce
File content as of revision 0:681bc2aada6f:
#include "mbed.h" #include <math.h> SPI My_SPI(D11,D12,D13); DigitalOut cs(D10); AnalogIn Analog_in(A5); //Serial pc(PA_11,PA_12); Serial pc(PA_2,PA_3); void Point_Smile(int); int main() { My_SPI.frequency(100000); My_SPI.format(8,0); uint8_t state_show=0; uint8_t data_a[5]={ '0','0','0','0','0' },data='0'; int Colum[4]={0x00,0x00,0x00,0x00},Colum_level[4]={0x00,0x00,0x00,0x00},i=0,point=0; int data_level[4]={ 0,0,0,0 },data_b[4]={ 0,0,0,0 }; float data_point[4],data_poi=0,analog_read=0; cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(0x00); //row cs=1; while (1) { if (state_show==0) { pc.printf("Menu\n"); pc.printf("1.Set Colum 1\n"); pc.printf("2.Set Colum 2\n"); pc.printf("3.Set Colum 3\n"); pc.printf("4.Set Colum 4\n"); pc.printf("5.Send command\n"); state_show=1; } if(pc.readable()) { data = pc.getc(); pc.printf("\n"); if (data=='1') { pc.printf("Select level sound Put 1-4\n"); while (data == '1') { data_a[0] = pc.getc(); if( data_a[0]=='1' || data_a[0]=='2' || data_a[0]=='3' || data_a[0]=='4' ) { data = '0'; state_show=0; } else { pc.printf("Error Please Put 1-4\n"); } } } else if (data=='2') { pc.printf("Select level sound Put 1-4\n"); while (data == '2') { data_a[1] = pc.getc(); if( data_a[1]=='1' || data_a[1]=='2' || data_a[1]=='3' || data_a[1]=='4' ) { data = '0'; state_show=0; } else { pc.printf("Error Please Put 1-4\n"); } } } else if (data=='3') { pc.printf("Select level sound Put 1-4\n"); while (data == '3') { data_a[2] = pc.getc(); if( data_a[2]=='1' || data_a[2]=='2' || data_a[2]=='3' || data_a[2]=='4' ) { data = '0'; state_show=0; } else { pc.printf("Error Please Put 1-4\n"); } } } else if (data=='4') { pc.printf("Select level sound Put 1-4\n"); while (data == '4') { data_a[3] = pc.getc(); if( data_a[3]=='1' || data_a[3]=='2' || data_a[3]=='3' || data_a[3]=='4' ) { data = '0'; state_show=0; } else { pc.printf("Error Please Put 1-4\n"); } } } else if (data=='5') { if ( data_a[0]=='0' || data_a[1]=='0' || data_a[2]=='0' || data_a[3]=='0') { pc.printf("Please Set All Colum \n"); data = '0'; state_show=0; } else { //แสดงไฟตามค่า(ส่งค่าไป) for(i=0;i<4;i++) { if (data_a[i]=='1') { Colum[i]=0xC0; data_b[i]=1; } else if (data_a[i]=='2') { Colum[i]=0xF0; data_b[i]=2; } else if (data_a[i]=='3') { Colum[i]=0xFC; data_b[i]=3; } else if (data_a[i]=='4') { Colum[i]=0xFF; data_b[i]=4; } } for( i=0; i<10000; i++) { cs=0; My_SPI.write(0xFC); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(Colum[0]); //row cs=1; cs=0; My_SPI.write(0xF3); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(Colum[1]); //row cs=1; cs=0; My_SPI.write(0xCF); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(Colum[2]); //row cs=1; cs=0; My_SPI.write(0x3F); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(Colum[3]); //row cs=1; wait(0.0001f); } cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(0x00); //row cs=1; //การเก็บค่าและคำนวนคะแนน เสียง 3วิ7500 for( i=0; i<1500; i++) { cs=0; My_SPI.write(0xFC); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(Colum[0]); //row cs=1; //เก็บค่าเสียง if(i==1000) { analog_read=Analog_in.read(); analog_read=analog_read*4; } wait(0.001); } //คำนวนคะแนนว่าได้ระดับไหน(1-4) if(analog_read>0.1 && analog_read<=1.2) data_level[0]=1; else if(analog_read>1.2 && analog_read<=2.3) data_level[0]=2; else if(analog_read>2.3 && analog_read<=3.6) data_level[0]=3; else if(analog_read>3.6 && analog_read<=4) data_level[0]=4; cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(0x00); //row cs=1; for( i=0; i<1500; i++) { cs=0; My_SPI.write(0xF3); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(Colum[1]); //row cs=1; //เก็บค่าเสียง if(i==1000) { analog_read=Analog_in.read(); analog_read=analog_read*4; } wait(0.001); } //คำนวนคะแนนว่าได้ระดับไหน(1-4) if(analog_read>0.1 && analog_read<=1.2) data_level[1]=1; else if(analog_read>1.2 && analog_read<=2.3) data_level[1]=2; else if(analog_read>2.3 && analog_read<=3.6) data_level[1]=3; else if(analog_read>3.6 && analog_read<=4) data_level[1]=4; cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(0x00); //row cs=1; for( i=0; i<1500; i++) { cs=0; My_SPI.write(0xCF); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(Colum[2]); //row cs=1; //เก็บค่าเสียง if(i==1000) { analog_read=Analog_in.read(); analog_read=analog_read*4; } wait(0.001); } //คำนวนคะแนนว่าได้ระดับไหน(1-4) if(analog_read>0.1 && analog_read<=1.2) data_level[2]=1; else if(analog_read>1.2 && analog_read<=2.3) data_level[2]=2; else if(analog_read>2.3 && analog_read<=3.6) data_level[2]=3; else if(analog_read>3.6 && analog_read<=4) data_level[2]=4; cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(0x00); //row cs=1; for( i=0; i<1500; i++) { cs=0; My_SPI.write(0x3F); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(Colum[3]); //row cs=1; //เก็บค่าเสียง if(i==1000) { analog_read=Analog_in.read(); analog_read=analog_read*4; } wait(0.001); } //คำนวนคะแนนว่าได้ระดับไหน(1-4) if(analog_read>0.1 && analog_read<=1.2) data_level[3]=1; else if(analog_read>1.2 && analog_read<=2.3) data_level[3]=2; else if(analog_read>2.3 && analog_read<=3.6) data_level[3]=3; else if(analog_read>3.6 && analog_read<=4) data_level[3]=4; cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(0x00); //row cs=1; //เรียกฟังชันแสดงค่าไฟตามคะแนนที่ได้ for(i=0;i<4;i++) { if (data_level[i]==1) {Colum_level[i]=0xC0;} else if (data_level[i]==2) {Colum_level[i]=0xF0;} else if (data_level[i]==3) {Colum_level[i]=0xFC;} else if (data_level[i]==4) {Colum_level[i]=0xFF;} } for( i=0; i<10000; i++) { cs=0; My_SPI.write(0xFC); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(Colum_level[0]); //row cs=1; cs=0; My_SPI.write(0xF3); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(Colum_level[1]); //row cs=1; cs=0; My_SPI.write(0xCF); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(Colum_level[2]); //row cs=1; cs=0; My_SPI.write(0x3F); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(Colum_level[3]); //row cs=1; wait(0.0001f); } cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(0x00); //row cs=1; //คำนวนคะแนนรวม for(i=0;i<4;i++) { if(data_level[i]<=data_b[i]) { data_point[i]=(data_level[i]*100)/data_b[i]; } else if(data_level[i]>data_b[i]) { data_point[i]=((data_b[i]-(data_level[i]-data_b[i]))*100)/data_b[i]; } data_poi=data_poi+data_point[i]; } point=((data_poi/4)*5)/100; Point_Smile(point); //ฟังก์ชันแสดงหน้ายิ้มจากคะแนรวม data_poi=0; data = '0'; state_show=0; } } } } } void Point_Smile(int point) { if(point==0 || point<0) { for(int i=0; i<15000; i++) { cs=0; My_SPI.write(0xDB); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(0x04); //row cs=1; cs=0; My_SPI.write(0xBD); //R My_SPI.write(0xBD); //G My_SPI.write(0xBD); //B My_SPI.write(0x08); //row cs=1; cs=0; My_SPI.write(0xC3); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(0x20); //row cs=1; cs=0; My_SPI.write(0xBD); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(0x40); //row cs=1; wait(0.0001f); } cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(0x00); //row cs=1; } else if(point==1) { for(int i=0; i<15000; i++) { cs=0; My_SPI.write(0xDB); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(0x04); //row cs=1; cs=0; My_SPI.write(0xBD); //R My_SPI.write(0xBD); //G My_SPI.write(0xBD); //B My_SPI.write(0x08); //row cs=1; cs=0; My_SPI.write(0xC3); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(0x20); //row cs=1; cs=0; My_SPI.write(0xBD); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(0x40); //row cs=1; wait(0.0001f); } cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(0x00); //row cs=1; } else if(point==2) { for(int i=0; i<15000; i++) { cs=0; My_SPI.write(0xDB); //R My_SPI.write(0xDB); //G My_SPI.write(0xFF); //B My_SPI.write(0x04); //row cs=1; cs=0; My_SPI.write(0xC3); //R My_SPI.write(0xC3); //G My_SPI.write(0xFF); //B My_SPI.write(0x20); //row cs=1; cs=0; My_SPI.write(0xBD); //R My_SPI.write(0xBD); //G My_SPI.write(0xFF); //B My_SPI.write(0x40); //row cs=1; wait(0.0001f); } cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(0x00); //row cs=1; } else if(point==3) { for(int i=0; i<15000; i++) { cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xFF); //G My_SPI.write(0xDB); //B My_SPI.write(0x04); //row cs=1; cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xFF); //G My_SPI.write(0x81); //B My_SPI.write(0x20); //row cs=1; wait(0.0001f); } cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(0x00); //row cs=1; } else if(point==4) { for(int i=0; i<15000; i++) { cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xDB); //G My_SPI.write(0xDB); //B My_SPI.write(0x04); //row cs=1; cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xBD); //G My_SPI.write(0xBD); //B My_SPI.write(0x20); //row cs=1; cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xC3); //G My_SPI.write(0xC3); //B My_SPI.write(0x40); //row cs=1; wait(0.0001f); } cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(0x00); //row cs=1; } else if(point==5) { for(int i=0; i<15000; i++) { cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xDB); //G My_SPI.write(0xFF); //B My_SPI.write(0x04); //row cs=1; cs=0; My_SPI.write(0xFF); //R My_SPI.write(0x81); //G My_SPI.write(0xFF); //B My_SPI.write(0x20); //row cs=1; cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xC3); //G My_SPI.write(0xFF); //B My_SPI.write(0x40); //row cs=1; wait(0.0001f); } cs=0; My_SPI.write(0xFF); //R My_SPI.write(0xFF); //G My_SPI.write(0xFF); //B My_SPI.write(0x00); //row cs=1; } }