Bonjours bonsoir à tous.
Pour un projet pour mes étude je dois codé un menu pour un écran tactile et j’ai qu’elle que questions ^^.J’ai réussi à coder et à faire fonctionner le squelette de mon menu mais les boutons clignotent et je n’arrive pas à afficher des caractères :(. Voici mon programme :
#include <UTFT.h>
#include <URTouch.h>
int selecteurPage=5;
int x=0;
int y=0;
int sonde=0;
int heure1=0;
int heure2=0;
int minute1=0;
int minute2=0;
UTFT myGLCD(ITDB32S,38,39,40,41);
URTouch myTouch( 6, 5, 4, 3, 2);
extern uint8_t BigFont[];
void setup() {
myGLCD.InitLCD();
myTouch.InitTouch();
myTouch.setPrecision(PREC_HI);
extern uint8_t SmallFont[];
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
switch(selecteurPage){
case 0:
Menu_Prim();
break;
case 1:
Menu_index() ;
break;
case 2:
Menu_1() ;
break;
case 3:
Menu_12() ;
break;
case 4:
Menu_sonde() ;
break;
case 5:
Menu_horloge() ;
break;
case 6:
Menu_sms();
break;
default :
Menu_Prim();
break;
}
}
void Menu_Prim(){
myGLCD.fillScr(255,255,255);
myGLCD.fillRect(20,10,150,60);
myGLCD.setColor(0,0,0);
if (TestTouche(20,10,150,60)==true){
selecteurPage=1;
return;
}
else
{
selecteurPage=0;
}
/*myTouch.read();
x = myTouch.getX();
y = myTouch.getY();
if((y>10) and (y<60))
{
if((x>20) and (x<150)){
selecteurPage=1;
}
else
{
selecteurPage=0;
}
}
*/
}
void Menu_index(){
myGLCD.fillScr(255,0,0);
myGLCD.fillRect(20,10,150,60);
myGLCD.fillRect(180,110,310,160);
myGLCD.fillRect(180,180,310,230);
myGLCD.fillRect(20,110,150,160);
myGLCD.fillRect(20,180,150,230);
if (TestTouche(20,10,150,60)==true){
selecteurPage=0;
return;
}
if (TestTouche(180,180,310,230)==true){
selecteurPage=2;
return;
}
if (TestTouche(20,180,150,230)==true){
selecteurPage=4;
return;
}
if (TestTouche(180,110,310,160)==true){
selecteurPage=5;
return;
}
if (TestTouche(20,110,310,60)==true){
selecteurPage=6;
return;
}
else
{
selecteurPage=1;
}
/*myTouch.read();
x = myTouch.getX();
y = myTouch.getY();
if((y>10) and (y<60))
{
if((x>180) and (x<310))
{
selecteurPage=0;
}
}
if((y>180) and (y<230))
{
if((x>180) and (x<310))
{
selecteurPage=5;
}
}
if((y>180) and (y<230))
{
if((x>20) and (x<150))
{
selecteurPage=6;
}
}
else
{
selecteurPage=1;
}
*/
}
void Menu_1()
{
myGLCD.fillScr(0,255,0);
myGLCD.fillRect(20,10,150,60);
myGLCD.setColor(0,0,0);
if (TestTouche(20,10,150,60)==true){
selecteurPage=1;
}
else
{
selecteurPage=2;
}
}
void Menu_12()
{
myGLCD.fillScr(0,255,0);
myGLCD.fillRect(20,10,150,60);
myGLCD.setColor(0,0,0);
if (TestTouche(20,10,150,60)==true){
selecteurPage=2;
}
else
{
selecteurPage=3;
}
}
void Menu_sonde()
{
myGLCD.fillScr(255,0,255);
myGLCD.fillRect(20,10,150,60);
myGLCD.fillRect(180,110,310,160);
myGLCD.fillRect(20,110,150,160);
myGLCD.setColor(0,0,0);
if (TestTouche(20,10,150,60)==true){
selecteurPage=1;
return;
}
if (TestTouche(180,110,310,160)==true){
sonde=1;
return;
}
if (TestTouche(20,110,310,60)==true){
sonde=0;
return;
}
else
{
selecteurPage=4;
}
}
void Menu_horloge()
{
myGLCD.clrScr();
myGLCD.setColor(255, 255, 255);
myGLCD.drawRect(20,10,150,60);
myGLCD.drawRect(180,110,230,160);
myGLCD.drawRect(250,110,300,160);
myGLCD.drawRect(20,110,70,160);
myGLCD.drawRect(90,110,140,160);
myGLCD.print("-",CENTER,100);
myGLCD.print("+",275,135);
myGLCD.print("-",45,135);
myGLCD.print("+",115,135);
myGLCD.print("0", 267, 87);
if (TestTouche(20,10,150,60)==true){
selecteurPage=1;
return;
}
if (TestTouche(180,110,230,160)==true)
{
heure1=heure1-1;
return;
}
if(TestTouche(250,110,300,160)==true)
{
heure1=heure1+1;
return;
}
if(TestTouche(20,110,70,160)==true)
{
minute1=minute1-1;
return;
}
if(TestTouche(90,110,140,160)==true)
{
minute1=minute1+1;
return;
}
if(heure1>24)
{
heure1=0;
return;
}
if(minute1>60)
{
minute1=0;
}
}
void Menu_sms()
{
myGLCD.clrScr();
//myGLCD.fillScr(255,255,0);
myGLCD.fillRect(20,10,150,60);
myGLCD.setColor(255,255,255);
if (TestTouche(20,10,150,60)==true){
selecteurPage=1;
}
else
{
selecteurPage=6;
}
}
boolean TestTouche( int zoneX, int zoneY,int Longueur,int hauteur)
{
int X, Y,testX,testY; // varriable
if (myTouch.dataAvailable())// dataAvailable() est une fonction de la lib Utouch.h
{
myTouch.read();// read() est une fonction de la lib Utouch.h
X=myTouch.getX(), Y=myTouch.getY();// getX et getY() sont des fonction de la lib Utouch.h
//---- vérifie si appui sur la touche "+" ---------
testX=abs(X-(zoneX+Longueur/2)); // calcul valeur absolue de l'écart de X touchpad à la Zone X centre touche
testY=abs(Y-(zoneY+hauteur/2)); // calcul valeur absolue de l'écart de Y touchpad à la Zone Y centre touche
if (testX<Longueur/2 && testY<hauteur/2)
{return true;}
else
{ return false;}
}
return false;
}
Merci de votre aide