Error de copilacion

Hola a toda la comunidad, tengo problemas con un codigo que me da el siguiente error a ver quien me echa una manito ya que llevo dos dias y no encuentro el error.

Este es el error:

exit status 1
expected ')' before 'if'

Este es el codigo completo:

void controlJoystick(){
 leeJoystick();
 if(PQCP) {
   PQCP=0;
   if (joyPos==5){editMode=!editMode;}
   switch (editMode){
      case 1: 
         //lcd.blink();
         if (joyPos==4&&n[lcdX]<9 if="" joypos="=3&&n[lcdX]" lcdx="" n="" refresh="0;}">0){n[lcdX]--;   //abajo
             refresh=0;} 
         if (joyPos==1&&lcdX<19 if="" joypos="=2&&lcdX" lcdx="" refresh="0;}">0){lcdX--;         //izq
          refresh=0;}
       break;
       case 0:
        // lcd.noBlink();
         if (mNivel1<3  if="" joypos="=3 {mNivel1++;" mnivel1="" mnivel2="0;}" refresh="1;">0&&joyPos==4){mNivel1--;    //arriba
           mNivel2=0;
           refresh=1;}
         if (mNivel2<3  if="" joypos="=1 {mNivel2++;" mnivel2="" refresh="1;}" refresh="0;">0&&joyPos==2){mNivel2--;    //izq
          refresh=1;}
       }//!edit
 }//PQCP
}

Esta es la linea que me da el error:

if (mNivel2<3  if="" joypos="=1 {mNivel2++;" mnivel2="" refresh="1;}" refresh="0;">0&&joyPos==2){mNivel2--;

Moderador: Código y errores editados con etiquetas

Hola amigo, Saludos a Cuba.
Veamos, primero los codigos deben ir dentro de etiquetas lee las normas del foro. Cuando pongas códigos es mas fácil ayudar si lo pones completo y por ultimo ¿en que lenguaje está tu código? porque esto lo veo muy raro

Aqui va el codigo completo y muchas fracias por responder y el interes.
Este codigo fue echo para el joystick y otro tipo de display, la modificacion fue para el display no para el joystick, se gun en youtube funciona y esta echo por JMLoureiro77 y no veo el correo prara escribirle.

//---------------------------------------------------
// 1. Librerias
//---------------------------------------------------

#include “Wire.h”
#include “U8glib.h”

//----------------------------------------------------
// 2. Pines
//----------------------------------------------------
#define xPin A1
#define yPin A0
#define kPin 7
U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9, 2); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9

//----------------------------------------------------
// 3. Variables y Comandos
//----------------------------------------------------
int tCount1;
bool refresh;//lcd clear On/Off
//leerJoystick
int joyRead;
int joyPos; // lectura de
int lastJoyPos;
long lastDebounceTime = 0;
long debounceDelay = 100; //user define
//Control Joystick
bool PQCP;
bool editMode;
//sistema de menus
int mNivel1;
int mNivel2;
//editmode
byte n[19];
int lastN;
int lcdX;
//int lcdY;
bool exiT;
//----------------------------------------------------
// 4. Objetos
//----------------------------------------------------
//LiquidCrystal_I2C lcd(0x27,16,2);

//====================================================
// SETUP
//====================================================
void setup() {
//----------------------------------------------------
// S1. Pines
//----------------------------------------------------
u8g.setRot180();
pinMode(xPin, INPUT);
pinMode(yPin, INPUT);
pinMode(kPin, INPUT_PULLUP);
//----------------------------------------------------
// S2. Objetos
//----------------------------------------------------
//lcd.init();
//lcd.backlight();
}

//====================================================
// LOOP
//====================================================
void loop() {
controlJoystick();
menu();
/* if (millis()%50==0){
tCount1++;}
if (tCount1>1000){tCount1=0;}*/
}

//====================================================
// Menu
//====================================================
void menu(){
switch (mNivel1){
case 0:
menu0();//pantalla de inicio
break;
case 1:
if(mNivel2==1){menu11();
}else if (mNivel2==2){menu12();
}else if (mNivel2==3){menu13();}
else{menu1();}
break;
case 2:
menu2();
if(mNivel2==1){menu21();
}else if (mNivel2==2){menu22();
}else if (mNivel2==3){menu23();}
else{menu2();}
break;
case 3:
menu3(); //
break;
}//switch
}
//----------------------------------------------------
// Pantalla de inicio
//----------------------------------------------------
void menu0(){
//if (refresh){lcd.clear();refresh=0;}
leeJoystick();
u8g.setFont(u8g_font_8x13);
u8g.setPrintPos(0, 20);
u8g.print(“Pantalla de inicio!”);
}
//----------------------------------------------------
// Menu 1
//----------------------------------------------------
void menu1(){

u8g.setFont(u8g_font_8x13);
u8g.setPrintPos(0, 20);
u8g.print(“Menu 1”);
//++++++++++++++++++++
while(editMode){
controlJoystick();
//lcd.setCursor(lcdX,1);
if(n[lcdX]!=lastN){
// lcd.print(n[lcdX]);
lastN=n[lcdX];
}
}
}
//-------------------------------------------------1.1
void menu11(){
u8g.setFont(u8g_font_8x13);
u8g.setPrintPos(0, 20);
u8g.print(“Meni 1.1”);
}
//-------------------------------------------------1.2
void menu12(){
u8g.setFont(u8g_font_8x13);
u8g.setPrintPos(0, 20);
u8g.print(“Meni 1.2”);
}
//-------------------------------------------------1.3
void menu13(){
u8g.setFont(u8g_font_8x13);
u8g.setPrintPos(0, 20);
u8g.print(“Meni 1.3”);
}
//----------------------------------------------------
// Menu 2
//----------------------------------------------------
void menu2(){
u8g.setFont(u8g_font_8x13);
u8g.setPrintPos(0, 20);
u8g.print(“Meni 2”);
}
//-------------------------------------------------2.1
void menu21(){
u8g.setFont(u8g_font_8x13);
u8g.setPrintPos(0, 20);
u8g.print(“Meni 2.1”);
}
//-------------------------------------------------2.2
void menu22(){
u8g.setFont(u8g_font_8x13);
u8g.setPrintPos(0, 20);
u8g.print(“Meni 2.2”);
}
//-------------------------------------------------2.3
void menu23(){
u8g.setFont(u8g_font_8x13);
u8g.setPrintPos(0, 20);
u8g.print(“Meni 2.3”);
}
//----------------------------------------------------
// Menu 3
//----------------------------------------------------
void menu3(){
u8g.setFont(u8g_font_8x13);
u8g.setPrintPos(0, 20);
u8g.print(“Meni 3”);
switch (mNivel2){
case 0:
return;
case 1:
menu31();
break;
case 2:
menu32();
break;
case 3:
menu33();
break;
default:
break;
}//switch
}
//-------------------------------------------------3.1
void menu31(){
u8g.setFont(u8g_font_8x13);
u8g.setPrintPos(0, 20);
u8g.print(“Meni 3.1”);
}
//-------------------------------------------------3.2
void menu32(){
u8g.setFont(u8g_font_8x13);
u8g.setPrintPos(0, 20);
u8g.print(“Meni 3.2”);
}
//-------------------------------------------------3.3
void menu33(){
u8g.setFont(u8g_font_8x13);
u8g.setPrintPos(0, 20);
u8g.print(“Meni 3.3”);
}
//====================================================
// Control Joystic
//====================================================
void controlJoystick(){
leeJoystick();
if(PQCP) {
PQCP=0;
if (joyPos==5){editMode=!editMode;}
switch (editMode){
case 1:
//lcd.blink();
if (joyPos==4&&n[lcdX]<9 if="" joypos="=3&&n[lcdX]" lcdx="" n="" refresh=“0;}”>0){n[lcdX]–; //abajo
refresh=0;}
if (joyPos==1&&lcdX<19 if="" joypos="=2&&lcdX" lcdx="" refresh=“0;}”>0){lcdX–; //izq
refresh=0;}
break;
case 0:
// lcd.noBlink();
if (mNivel1<3 if="" joypos="=3 {mNivel1++;" mnivel1="" mnivel2=“0;}” refresh=“1;”>0&&joyPos==4){mNivel1–; //arriba
mNivel2=0;
refresh=1;}
if (mNivel2<3 if="" joypos="=1 {mNivel2++;" mnivel2="" refresh=“1;}” refresh=“0;”>0&&joyPos==2){mNivel2–; //izq
refresh=1;}
}//!edit
}//PQCP
}
int leeJoystick(){
int x = analogRead(xPin);
int y = analogRead(yPin);
int k = digitalRead(kPin);
if(x>900){joyRead=1; //x+
}else if(x<100 else="" if="" joyread=“2;” x-="" y="">900){joyRead=3; //y+
}else if(y<100 -="" else="" if="" joyread="" k="" lastdebouncetime="" lastjoypos="" millis="" y-=""> debounceDelay)&&(joyRead!=joyPos)){
joyPos=joyRead;
if(!PQCP){PQCP=1;}
}
lastJoyPos=joyRead;
}

Parece el cienpies de whatsapp!! jajaaj pon las etiquetas “[code ][ /code]” antes de que se levante surbyte de siesta, porque te va a dar para el pelo en cuanto te lea!

El problema esta en la función controlJoystick()

if (joyPos == 4 && n[lcdX]<9 if = "" joypos = "=3 && n[lcdX]" lcdx = "" n = "" refresh = "0;}">0) {
    n[lcdX]--;
    refresh = 0;
}

En un if (condicion) los términos deben ser expresiones lógicas unidas por operadores lógicos como && o ||, de manera que se deduce que tienes 3 condiciones:

1ra condicion: joyPos == 4 se ve ok.

2da condicion: n[lcdX]<9 if = “” joypos = "=3

3ra condición: n[lcdX]" lcdx = “” n = “” refresh = “0;}”>0

n[lcdx]<9 es una expresión pero ese if ?
Lo otro extraño es el numero impar de "

En la siguiente la primera es la matriz son comparador, las 3 siguientes podrian ser expresiones pero tendrian que ser unidas por un operador lógico.