You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
611 lines
16 KiB
611 lines
16 KiB
//***********************************************
|
|
|
|
void radio2()
|
|
{
|
|
int STATION_1=1059;
|
|
int STATION_2=1000;
|
|
int STATION_3=1004;
|
|
int STATION_4=1010;
|
|
int STATION_5=1039;
|
|
int STATION_6=1025;
|
|
int STATION_7=1068;
|
|
int STATION_8=1052;
|
|
int STATION_9=1075;
|
|
|
|
int x,y,f;
|
|
boolean mem=0;
|
|
myGLCD.setColor(VGA_WHITE);
|
|
myGLCD.setBackColor(VGA_BLUE);
|
|
myGLCD.setFont(BigFont);
|
|
myGLCD.fillScr(66,32,7); //(66,32,7)
|
|
//******************************************************************************************************
|
|
|
|
if (rad==0)
|
|
{
|
|
StationFrequency=STATION_5*100;
|
|
MP1090S:: InitI2C (19);
|
|
MP1090S:: SetBand (MHz87_5_108);
|
|
MP1090S::SetSpace (kHz50);
|
|
MP1090S::SetVolume (volume);
|
|
MP1090S::SetStation (StationFrequency);
|
|
|
|
//***************
|
|
|
|
//myGLCD.setFont( Dingbats1_XL);
|
|
//myButtons.drawButton(but7);
|
|
// but7 = myButtons.addButton(270, 80, 35, 35, "w", BUTTON_SYMBOL);
|
|
// myGLCD.setFont( BigFont);
|
|
|
|
// volume=5;
|
|
// MP1090S::SetVolume (volume);
|
|
rad=1;
|
|
}
|
|
pictrad();
|
|
c=1;
|
|
//int a=0;
|
|
// drawButtons();
|
|
|
|
// myGLCD.setFont( Dingbats1_XL);
|
|
// pictradio();
|
|
|
|
myGLCD.setFont( BigFont);
|
|
drawButt();
|
|
strelka();
|
|
|
|
|
|
myGLCD.setBackColor(0,104,39);//goluboy
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.setFont( BigFont);
|
|
myGLCD.print(" ", 160, 95);
|
|
|
|
int pos=100*volume/15;
|
|
myGLCD.printNumI(abs(pos) , 160, 95);
|
|
//bar(x,y, pos,l,h);
|
|
barrad(65,135, pos,270-25,10);
|
|
|
|
// myGLCD.setColor(255,255,255);
|
|
myGLCD.setColor(29,124,221);
|
|
myGLCD.setBackColor(66,32,7);
|
|
myGLCD.setFont( Ubuntubold);
|
|
myGLCD.printNumI(STATION_1 , 70, 370);
|
|
myGLCD.printNumI(STATION_2 ,119, 420);
|
|
myGLCD.printNumI(STATION_3 , 230, 370);
|
|
myGLCD.printNumI(STATION_4, 280, 420);
|
|
myGLCD.printNumI(STATION_5 , 388, 370);
|
|
myGLCD.printNumI(STATION_6 ,440, 420);
|
|
myGLCD.printNumI(STATION_7 , 540, 370);
|
|
myGLCD.printNumI(STATION_8 ,595, 420);
|
|
myGLCD.printNumI(STATION_9 , 695, 370);
|
|
|
|
// myGLCD.drawBitmap (639, 370, 160, 80, cl);
|
|
// myGLCD.drawRoundRect (639, 370, 799, 450); //Clok
|
|
clcrad();
|
|
while(1)
|
|
{
|
|
sec=t.sec;
|
|
if (sec==0)
|
|
{
|
|
delay(800);
|
|
//kalend();
|
|
clcrad();
|
|
}
|
|
|
|
// digitalClockDisplay();
|
|
//{
|
|
if (myTouch.dataAvailable())
|
|
|
|
{
|
|
myTouch.read();
|
|
x=myTouch.getX();
|
|
y=myTouch.getY();
|
|
|
|
myGLCD.setColor(VGA_BLUE);
|
|
myGLCD.setBackColor(255,255,255);
|
|
// myGLCD.setFont( Ubuntubold);
|
|
// myGLCD.print("x= " , 650, 32);
|
|
//myGLCD.printNumI(x , 700, 32);
|
|
// myGLCD.setFont( Ubuntubold);
|
|
// myGLCD.print("y= " ,650 , 72);
|
|
//myGLCD.printNumI(y , 700, 72);
|
|
//**************************************************
|
|
if ((y>=405) && (y<=450)) // Upper row
|
|
{
|
|
if ((x>=62) && (x<=112))// 2
|
|
{waitForIt(62, 405, 112, 450);
|
|
if (mem==1)
|
|
{STATION_2= StationFrequency/100;
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.setBackColor(66,32,7);
|
|
myGLCD.setFont( Ubuntubold);
|
|
myGLCD.print(" ", 119, 420);
|
|
myGLCD.printNumI(STATION_2 ,119, 420);
|
|
mem=0;
|
|
}
|
|
else
|
|
{ StationFrequency=STATION_2*100;
|
|
strelka();
|
|
}
|
|
}
|
|
|
|
if ((x>=224) && (x<=274))// 4
|
|
{waitForIt(224, 405, 274, 450);
|
|
if (mem==1)
|
|
{STATION_4= StationFrequency/100;
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.setBackColor(66,32,7);
|
|
myGLCD.setFont( Ubuntubold);
|
|
myGLCD.print(" ", 280, 420);
|
|
myGLCD.printNumI(STATION_4, 280, 420);
|
|
mem=0;
|
|
}
|
|
else
|
|
{ StationFrequency=STATION_4*100;
|
|
strelka();
|
|
}
|
|
}
|
|
|
|
if ((x>=383) && (x<=433))// 6
|
|
{waitForIt(383, 405, 433, 450);
|
|
if (mem==1)
|
|
{STATION_6= StationFrequency/100;
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.setBackColor(66,32,7);
|
|
myGLCD.setFont( Ubuntubold);
|
|
myGLCD.print(" ", 440, 420);
|
|
myGLCD.printNumI(STATION_6 ,440, 420);
|
|
mem=0;
|
|
}
|
|
else
|
|
{ StationFrequency=STATION_6*100;
|
|
strelka();
|
|
}
|
|
}
|
|
if ((x>=540) && (x<=590))// 8
|
|
{waitForIt(540, 405, 590, 450);
|
|
if (mem==1)
|
|
{STATION_8= StationFrequency/100;
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.setBackColor(66,32,7);
|
|
myGLCD.setFont( Ubuntubold);
|
|
myGLCD.print(" ", 595, 420);
|
|
myGLCD.printNumI(STATION_8 ,595, 420);
|
|
mem=0;
|
|
}
|
|
else
|
|
{ StationFrequency=STATION_8*100;
|
|
strelka();
|
|
}
|
|
}
|
|
//******************************
|
|
}
|
|
if ((y>=5) && (y<=50)) // Upper row
|
|
{
|
|
|
|
if ((x>=230) && (x<=280)) // Button: x
|
|
{ waitcirForIt(260+3,30+10,22);
|
|
mem=1;
|
|
}
|
|
if ((x>=480) && (x<=520)) // Button:_
|
|
{
|
|
waitForIt(482, 3, 532, 48);
|
|
rad=1;
|
|
//clok();
|
|
return ;
|
|
}
|
|
|
|
if ((x>=540) && (x<=580)) // Button: x
|
|
{
|
|
waitForIt(540, 3, 590, 48);
|
|
rad=0;
|
|
volume=0;
|
|
MP1090S::SetVolume (volume);
|
|
//clok();
|
|
return ;
|
|
|
|
}
|
|
}
|
|
//**********************************************************************************
|
|
if ((y>=290) && (y<=330)) // Upper row
|
|
{
|
|
if ((x>=20) && (x<=55)) // Button:<<
|
|
{
|
|
waitForIt(10, 284, 62, 329);
|
|
|
|
// do
|
|
//{
|
|
StationFrequency=StationFrequency-1000;
|
|
if (StationFrequency<90000)
|
|
{StationFrequency=108000;
|
|
}
|
|
strelka();
|
|
//myGLCD.printNumI(ust , CENTER, 350);
|
|
|
|
// } while(ust>0);
|
|
}
|
|
if ((x>=75) && (x<=120)) // Button:-
|
|
{
|
|
waitForIt(70, 284, 120, 329);
|
|
|
|
StationFrequency=StationFrequency-50;
|
|
if (StationFrequency<90000)
|
|
{StationFrequency=108000;
|
|
}
|
|
strelka();
|
|
|
|
}
|
|
if ((x>=675) && (x<=725)) // Button:+
|
|
{
|
|
waitForIt(677, 284, 727, 329);
|
|
|
|
StationFrequency=StationFrequency+50;
|
|
if (StationFrequency>108000)
|
|
{StationFrequency=90000;
|
|
}
|
|
strelka();
|
|
|
|
}
|
|
if ((x>=735) && (x<=775)) // Button:>>
|
|
{
|
|
waitForIt(739, 284, 792, 329);
|
|
|
|
// do
|
|
// {
|
|
StationFrequency=StationFrequency+1000;
|
|
|
|
if (StationFrequency>107000)
|
|
{StationFrequency=90000;
|
|
}
|
|
strelka();
|
|
// myGLCD.printNumI(ust , CENTER, 350);
|
|
// } while(ust>0);
|
|
|
|
}
|
|
|
|
|
|
}
|
|
if ((y>=120) && (y<=150)) // Upper row
|
|
{
|
|
if ((x>=28) && (x<=48)) // Button:- volume
|
|
{
|
|
waitcirForIt(32-3,138+4,18);
|
|
if (volume<1)
|
|
{volume=1;
|
|
}
|
|
volume=volume-1;
|
|
MP1090S::SetVolume (volume);
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.setBackColor(0,104,39);
|
|
myGLCD.setFont( BigFont);
|
|
myGLCD.print(" ", 160, 95);
|
|
// myGLCD.printNumI(volume , 168, 90);
|
|
int pos=100*volume/15;
|
|
myGLCD.printNumI(abs(pos) ,160, 95);
|
|
|
|
barrad(65,135, pos,270-25,10);
|
|
}
|
|
|
|
if ((x>=316) && (x<=356)) // Button:+ volume
|
|
{
|
|
waitcirForIt(338+3,138+4,18);
|
|
if (volume>14)
|
|
{volume=14;
|
|
}
|
|
volume=volume+1;
|
|
MP1090S::SetVolume (volume);
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.setBackColor(0,104,39);
|
|
myGLCD.setFont( BigFont);
|
|
myGLCD.print(" ", 160, 95);
|
|
// myGLCD.printNumI(volume , 168, 90);
|
|
int pos=100*volume/15;
|
|
myGLCD.printNumI(abs(pos) , 160, 95);
|
|
|
|
barrad(65,135, pos,270-25,10);
|
|
}
|
|
|
|
}
|
|
|
|
if ((y>=70) && (y<=100)) // Upper row
|
|
{
|
|
if ((x>=17) && (x<=47)) // Button:mute
|
|
{ waitcirForIt(32-3,85+6,18);
|
|
volume=0;
|
|
MP1090S::SetVolume (volume);
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.setBackColor(0,104,39);
|
|
myGLCD.setFont( BigFont);
|
|
myGLCD.print(" ", 160, 95);
|
|
// myGLCD.printNumI(volume , 168, 90);
|
|
int pos=100*volume/15;
|
|
myGLCD.printNumI(abs(pos) , 160, 95);
|
|
|
|
barrad(65,135, pos,270-25,10);
|
|
}
|
|
}
|
|
|
|
if ((y>=355) && (y<=405)) // Upper row
|
|
{
|
|
if ((x>=16) && (x<=56))// 1
|
|
{waitForIt(6, 355, 56, 400);
|
|
if (mem==1)
|
|
{STATION_1= StationFrequency/100;
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.setBackColor(66,32,7);
|
|
myGLCD.setFont( Ubuntubold);
|
|
myGLCD.print(" ", 70, 370);
|
|
myGLCD.printNumI(STATION_1 , 70, 370);
|
|
mem=0;
|
|
}
|
|
else
|
|
{ StationFrequency=STATION_1*100;
|
|
strelka();
|
|
}
|
|
}
|
|
|
|
if ((x>=175) && (x<=215))// 3
|
|
{waitForIt(170, 355, 220, 400);
|
|
if (mem==1)
|
|
{STATION_3= StationFrequency/100;
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.setBackColor(66,32,7);
|
|
myGLCD.setFont( Ubuntubold);
|
|
myGLCD.print(" ", 230, 370);
|
|
myGLCD.printNumI(STATION_3 , 230, 370);
|
|
mem=0;
|
|
}
|
|
else
|
|
{ StationFrequency=STATION_3*100;
|
|
strelka();
|
|
}
|
|
}
|
|
if ((x>=330) && (x<=380))// 5
|
|
{waitForIt(330, 355, 380, 400);
|
|
if (mem==1)
|
|
{STATION_5= StationFrequency/100;
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.setBackColor(66,32,7);
|
|
myGLCD.setFont( Ubuntubold);
|
|
myGLCD.print(" ", 388, 370);
|
|
myGLCD.printNumI(STATION_5 , 388, 370);
|
|
mem=0;
|
|
}
|
|
else
|
|
{ StationFrequency=STATION_5*100;
|
|
strelka();
|
|
}
|
|
}
|
|
if ((x>=484) && (x<=530))// 7
|
|
{waitForIt(484, 355, 534, 400);
|
|
if (mem==1)
|
|
{STATION_7= StationFrequency/100;
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.setBackColor(66,32,7);
|
|
myGLCD.setFont( Ubuntubold);
|
|
myGLCD.print(" ", 540, 370);
|
|
myGLCD.printNumI(STATION_7 , 540, 370);
|
|
mem=0;
|
|
}
|
|
else
|
|
{ StationFrequency=STATION_7*100;
|
|
strelka();
|
|
}
|
|
}
|
|
if ((x>=640) && (x<=690))// 9
|
|
{waitForIt(640, 355, 690, 400);
|
|
if (mem==1)
|
|
{STATION_9= StationFrequency/100;
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.setBackColor(66,32,7);
|
|
myGLCD.setFont( Ubuntubold);
|
|
myGLCD.print(" ", 695, 370);
|
|
myGLCD.printNumI(STATION_9 , 695, 370);
|
|
mem=0;
|
|
}
|
|
else
|
|
{ StationFrequency=STATION_9*100;
|
|
strelka();
|
|
}
|
|
}
|
|
}
|
|
//**********-----------------------------------------------------------------------------------------------------
|
|
if ((y>=210) && (y<=270)) // Upper row
|
|
{f=x*10/44+900;
|
|
myGLCD.setFont( BigFont);
|
|
myGLCD.setColor(VGA_BLUE);
|
|
myGLCD.setBackColor(255,255,255);
|
|
// myGLCD.print("f= " , 650, 132);
|
|
// myGLCD.printNumI(f , 700, 132);
|
|
StationFrequency=f*100;
|
|
strelka();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
delay(100);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Рисуем кнопки
|
|
void drawButt()
|
|
{
|
|
// Draw the upper row of buttons
|
|
|
|
|
|
myGLCD.setColor(255, 232, 13);
|
|
myGLCD.drawRoundRect (482, 3, 532, 48);// _ 50x45
|
|
myGLCD.drawRoundRect (540, 3, 590, 48); //x
|
|
|
|
|
|
myGLCD.drawRoundRect (10, 284, 62, 329);//<<
|
|
myGLCD.drawRoundRect (70, 284, 120, 329);//- 50x45
|
|
myGLCD.drawRoundRect (677, 284, 727, 329);//+
|
|
myGLCD.drawRoundRect (739, 284, 792, 329);//>>
|
|
|
|
myGLCD.drawCircle (32-3,85+6,18);//mute
|
|
myGLCD.drawCircle (32-3,138+4,18);//-
|
|
myGLCD.drawCircle (338+3,138+4,18);//+
|
|
myGLCD.drawCircle (260+3,30+10,22);//glass
|
|
|
|
myGLCD.drawRoundRect (6, 355, 56, 400);//1
|
|
myGLCD.drawRoundRect (170, 355, 220, 400);//3
|
|
myGLCD.drawRoundRect (330, 355, 380, 400);//5
|
|
myGLCD.drawRoundRect (484, 355, 534, 400);//7
|
|
myGLCD.drawRoundRect (640, 355, 690, 400);//9
|
|
|
|
myGLCD.drawRoundRect (62, 405, 112, 450);//2
|
|
myGLCD.drawRoundRect (224, 405, 274, 450);//4
|
|
myGLCD.drawRoundRect (383, 405, 433, 450);//6
|
|
myGLCD.drawRoundRect (540, 405, 590, 450);//8
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Draw a red frame while a button is touched
|
|
void waitForIt(int x1, int y1, int x2, int y2)
|
|
{
|
|
myGLCD.setColor(0, 217, 48);
|
|
myGLCD.drawRoundRect (x1, y1, x2, y2);
|
|
while (myTouch.dataAvailable())
|
|
myTouch.read();
|
|
myGLCD.setColor(255, 232, 13);
|
|
myGLCD.drawRoundRect (x1, y1, x2, y2);
|
|
}
|
|
|
|
void waitcirForIt(int x1, int y1, int x2)
|
|
{
|
|
myGLCD.setColor(0, 217, 48);
|
|
myGLCD.drawCircle (x1,y1,x2);//glass
|
|
while (myTouch.dataAvailable())
|
|
myTouch.read();
|
|
myGLCD.setColor(255, 232, 13);
|
|
myGLCD.drawCircle (x1,y1,x2);//glass
|
|
}
|
|
|
|
|
|
|
|
//****************************strelka***********************************
|
|
void strelka()
|
|
{
|
|
int xstr;
|
|
xstr=(StationFrequency/100-900)*44/10;
|
|
xstr=abs(xstr);
|
|
|
|
|
|
|
|
myGLCD.setColor(0,104,39);
|
|
myGLCD.fillRoundRect (306, 279, 500, 333); //clear
|
|
myGLCD.setColor(255,255,255);
|
|
myGLCD.setBackColor(0,104,39);
|
|
myGLCD.setFont( SevenSegNumFont);
|
|
myGLCD.printNumI(StationFrequency/100 , CENTER, 280);
|
|
MP1090S::SetStation ( StationFrequency);
|
|
|
|
|
|
|
|
myGLCD.setColor(63,33, 9);
|
|
myGLCD.fillRoundRect (0, 246, 800, 266);
|
|
myGLCD.setColor(255,0, 0);
|
|
myGLCD.fillRoundRect (xstr-2, 246, xstr+3, 266);
|
|
}
|
|
|
|
//************************************************************************************
|
|
|
|
void clcrad()
|
|
{ char* strm[] = {"JAN","FEBR","MARCH","APRIL","MAY","JUNE","JULY","AUG","SEPT","OCT","NOV","DEC"};
|
|
int cx=70;
|
|
int cy=30;
|
|
int month1;
|
|
//**********CLOK*******************************************************************************
|
|
myGLCD.setColor(VGA_WHITE);
|
|
myGLCD.setBackColor(0,38,92);
|
|
myGLCD.setFont( SevenSegNumFont);
|
|
if (t.hour<10)
|
|
{
|
|
myGLCD.printNumI(0,cx, cy);
|
|
myGLCD.printNumI(t.hour, cx+32, cy);
|
|
}
|
|
else
|
|
{
|
|
myGLCD.printNumI(t.hour,cx, cy);
|
|
}
|
|
myGLCD.print(":",cx+64, cy);
|
|
if (t.min<10)
|
|
{
|
|
myGLCD.printNumI(0,cx+96, cy);
|
|
myGLCD.printNumI(t.min, cx+128, cy);
|
|
}
|
|
else
|
|
{
|
|
myGLCD.printNumI(t.min, cx+96, cy);
|
|
}
|
|
|
|
// kalendar
|
|
myGLCD.setFont( Ubuntubold);
|
|
//myGLCD.setFont(BigFont);
|
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
|
myGLCD.setColor(245,61,6);
|
|
// myGLCD.setBackColor(255,114,0);
|
|
month1=t.mon;
|
|
myGLCD.print(strm[month1-1], 663-15, 18+8);
|
|
|
|
// myGLCD.print(rtc.getDOWStr(FORMAT_SHORT), 256+450, 8);
|
|
myGLCD.setFont( SevenSegNumFont);
|
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
|
// myGLCD.setBackColor(255,255,255);
|
|
myGLCD.setColor(29,124,221);//goluboy
|
|
if (t.date<10)
|
|
myGLCD.printNumI(t.date, 710-30, 56+5);
|
|
else
|
|
myGLCD.printNumI(t.date, 695-30, 56+5);
|
|
// myGLCD.setFont(BigFont);
|
|
// myGLCD.setBackColor(180,180,180);
|
|
myGLCD.setFont( Ubuntubold);
|
|
myGLCD.setColor(13,124,30);//zelen
|
|
dow= t.dow;
|
|
myGLCD.print(str[dow-1], 690-20,110+5);
|
|
/// myGLCD.printNumI(rtc_clock.get_months(), 695, 122);
|
|
myGLCD.setFont(BigFont);
|
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
|
//myGLCD.setBackColor(180,180,180);
|
|
myGLCD.printNumI(t.year, 694-20, 143+5);
|
|
|
|
|
|
//myGLCD.setBackColor(0,0,55);
|
|
|
|
}
|
|
|
|
void barrad(int x,int y,int pos,int l,int h)//kalendar(days, mon, years); l-длинна шкалы pos-позиция метки положения h-высота
|
|
{
|
|
|
|
//int h=40;//высота шкалы
|
|
myGLCD.setBackColor(0,0,255);
|
|
myGLCD.setColor(0,104,39);//цвет фоновый пр-к
|
|
// myGLCD.setColor(0,0,255);
|
|
myGLCD.fillRoundRect(x-5, y-5, l+x+5, h+y+5);//рисуем фоновый пр-к
|
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
|
myGLCD.drawRoundRect(x, y, l+x, h+y);//прямоугольник с обводкой
|
|
//myGLCD.setColor(255,114,0);
|
|
//myGLCD.fillRoundRect(80, 35, 632, 87);
|
|
myGLCD.setColor(29,124,221);// цвет прямоуг уровня
|
|
myGLCD.fillRoundRect(x+1, y+1, (pos*l/100+x)-1, h+y-1);//рисуем прямоуг уровня
|
|
// myGLCD.setFont(BigFont);
|
|
// myGLCD.setColor(VGA_WHITE);
|
|
// myGLCD.setBackColor(0,104,39);
|
|
// myGLCD.setBackColor(0,0,255);
|
|
// myGLCD.print("BRIGHT", x-48+(l/2), y-25);
|
|
// myGLCD.printNumI(abs(pos), x-10+(l/2), y+2);// уровень в процентах
|
|
|
|
|
|
|
|
|
|
}
|
|
|