testando

Dependencies:   mbed TextLCD2

Revision:
85:10dec681c389
Parent:
84:d6dd7bf705a1
Child:
87:6bba4ab5a623
--- a/main_PM.cpp	Mon Jun 08 13:33:36 2020 +0000
+++ b/main_PM.cpp	Mon Jun 08 15:10:34 2020 +0000
@@ -124,15 +124,38 @@
 }
 
 //Função que troca de tela
-void troca_tela(bool cond, void tela1(), void tela2(), float valory){
+void troca_tela(bool cond, void telas1(), void telas2(), float valort11, float valort12, float valort21, float valort22, int argumento){
     TextLCD lcd(D4, D5, D6, D7, D8, D9);
     while(cond){
-        tela1();
+        telas1();
+        if(argumento == 1){
+            if(valort11 !=0){
+                lcd.locate(18,1);
+                lcd.printf("OK");
+            }
+        }
+        else if(argumento >= 2){
+            if(valort11!=0){
+                lcd.locate(18,1);lcd.printf("OK");   
+            }
+            if(valort12 !=0){
+                lcd.locate(18,2);lcd.printf("OK");
+            }
+        }
         wait(2);
-        tela2();
-        if(valory !=0){
-            lcd.locate(18,1);
-            lcd.printf("OK");    
+        telas2();
+        if(argumento == 3){
+              if(valort21!=0){
+                lcd.locate(18,1);lcd.printf("OK");   
+            } 
+        }
+        else if(argumento == 4){
+            if(valort21!=0){
+                lcd.locate(18,1);lcd.printf("OK");   
+            }
+            if(valort22 !=0){
+                lcd.locate(18,2);lcd.printf("OK");
+            }
         }
         wait(2);
         tecla = pega_tecla();
@@ -202,7 +225,7 @@
     if(confirmacao_pos_pega[programa] != 0){ 
          lcd.locate(18,1);lcd.printf("OK");   
     }
-    if(confirmacao_pos_pega[programa] != 0){
+    if(confirmacao_pos_solta[programa] != 0){
          lcd.locate(18,2);lcd.printf("OK");
     }
 }
@@ -213,7 +236,7 @@
     if(confirmacao_vol_pega[programa] != 0){ //
          lcd.locate(18,1);lcd.printf("OK");   
     }
-    if(confirmacao_vol_pega[programa] != 0){
+    if(confirmacao_vol_solta[programa] != 0){
          lcd.locate(18,2);lcd.printf("OK");
     }
 }
@@ -290,23 +313,8 @@
         //Ações para a tela inicial
         if(tecla == '1' && status_tela == "inicio"){
             continuar = 1; //Condição de funcionamento do loop abaixo
-            troca_tela(continuar, funcao_pega1, funcao_pega2, pos_y_pega[programa]);
-            //while(continuar){//Esse loop indica que há a alternancia entre duas telas enquanto nada for selecionado.
-//                             //Ele aparecerá todas as vezes que isso for necessário, portanto não será mais comentado daqui em diante   
-//                funcao_pega1();
-//                wait(2);
-//                funcao_pega2();
-//                if(pos_y_pega[programa] !=0){
-//                    lcd.locate(18,1);lcd.printf("OK");    
-//                }
-//                wait(2);
-//                tecla = pega_tecla();
-//                if(tecla!='k'){
-//                    printf("entrou no if");
-//                    continuar = 0;
-//                }
-//            }
-             status_tela = "novo";
+            status_tela = "novo";
+            troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3);
         }
         else if(tecla == '2' && status_tela == "inicio"){   //Ações para a tela inicial quando o usuário seleciona programas salvos
             continuar = 1;
@@ -328,56 +336,45 @@
     //A variável programa remete a que programa salvo o usuário deseja acessar 
         tecla = pega_tecla();    
         if(tecla =='1' && status_tela =="salvo"){
-            funcao_salvo_agree1();
-            ok_agree1();
-            wait(1);
-            funcao_salvo_agree2();
-            ok_agree2();
+            continuar = 1;
+            status_tela = "salvo_confirmacao";
+            troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
             programa = 1; 
-            status_tela = "salvo_confirmacao";}
+            }
         else if(tecla =='2' && status_tela =="salvo"){
-            funcao_salvo_agree1();
-            ok_agree1();
-            wait(1);
-            funcao_salvo_agree2();
-            ok_agree2();
+            status_tela = "salvo_confirmacao";
+            continuar = 1;
+            troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
             programa = 2;
-            status_tela = "salvo_confirmacao";}
+            }
         else if(tecla =='3' && status_tela =="salvo"){
-            funcao_salvo_agree1();
-            ok_agree1();
-            wait(1);
-            funcao_salvo_agree2();
-            ok_agree2();
+            continuar = 1;
+            status_tela = "salvo_confirmacao";
+            troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
             programa = 3;
-            status_tela = "salvo_confirmacao";}
+            }
         else if(tecla =='4' && status_tela =="salvo"){
-            funcao_salvo_agree1();
-            ok_agree1();
-            wait(1);
-            funcao_salvo_agree2();
-            ok_agree2();
+            continuar = 1;
+            troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
             programa = 4;
             status_tela = "salvo_confirmacao";}
         else if(tecla =='5' && status_tela =="salvo"){
-            funcao_salvo_agree1();
-            ok_agree1();
-            wait(1);
-            funcao_salvo_agree2();
-            ok_agree2();
+            continuar = 1;
+            status_tela = "salvo_confirmacao";
+            troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
             programa = 5;
-            status_tela = "salvo_confirmacao";}
+            }
         else if(tecla =='6' && status_tela =="salvo"){
-            funcao_salvo_agree1();
-            ok_agree1();
-            wait(1);
-            funcao_salvo_agree2();
-            ok_agree2();
+            continuar = 1;
+            status_tela = "salvo_confirmacao";
+            troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
             programa = 6;
-            status_tela = "salvo_confirmacao";}
+            }
         else if(tecla =='B' && status_tela =="salvo"){
+            status_tela = "inicio";
+            continuar = 1;
             funcao_inicio();
-            status_tela = "inicio";}      
+            }      
         
         tecla = pega_tecla();//Atualiza a variável tecla
         
@@ -405,17 +402,16 @@
             funcao_salvo_agree_pos_certo(); //Tela para o usuário confirmar se é essa a posição de fato da pega 
             status_tela="salvo_pos_certo_pega" ;}
         else if(tecla == 'B' && status_tela=="salvo_confirmacao_pega_agree"){
-            funcao_salvo_agree1();
-            ok_agree1();
-            wait(1);
-            funcao_salvo_agree2();
-            ok_agree2();
+            continuar = 1;
+            status_tela = "salvo_confirmacao";
+            troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
             programa = 1;
-            status_tela = "salvo_confirmacao";}
+            }
         else if(tecla =='2' && status_tela =="salvo_confirmacao"){
+             continuar = 1;
+             status_tela = "salvo_confirmacao_solta_agree";
              funcao_salvo_agree_solta_aviso();   //posicionar no local de solta para confirmação; (motor -> programa.pos_x_solta e motor -> programa.pos_y_solta)
              wait(3);
-             status_tela = "salvo_confirmacao_solta_agree";
             }
         
         //Ações para a tela confirmação_solta_agree
@@ -491,12 +487,9 @@
         //Ações para a tela de salvo_pos_certo_pega
         if(tecla =='1' && status_tela =="salvo_pos_certo_pega"){
             confirmacao_pos_pega[programa]=1;
-            funcao_salvo_agree1();
-            ok_agree1();
-            wait(1);
-            funcao_salvo_agree2();
-            ok_agree2();
             status_tela = "salvo_confirmacao";
+            continuar = 1;
+            troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
             }//salva essa posição como correta
         else if(tecla =='2' && status_tela =="salvo_pos_certo_pega"){ //Caso o usuário queria ajustar o posicionamento
             lcd.cls();
@@ -528,53 +521,38 @@
                     lcd.printf("Posicao X: %4.1f", coord_x);
                     lcd.locate(0,2);
                     lcd.printf("Posicao Y: %4.1f", coord_y);
-                    funcao_salvo_agree1();
-                    ok_agree1();
-                        wait(1);
-                    funcao_salvo_agree2(); 
-                    ok_agree2();
                     status_tela = "salvo_confirmacao";
-                    continuar = 0;
                     confirmacao_pos_pega[programa]=1;
+                    troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
                 }
             }
         }
         else if(tecla =='B' && status_tela =="salvo_pos_certo_pega"){             
-            funcao_salvo_agree1();
-            ok_agree1();
-            wait(1);
-            funcao_salvo_agree2(); 
-            ok_agree2();
-            status_tela = "salvo_confirmacao";}  
+            status_tela = "salvo_confirmacao";
+            continuar = 1;
+            troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
+        }  
         
         
         //Ações para a tela salvo_conf_vol_pega
         if(tecla =='A' && status_tela =="salvo_conf_vol_pega"){
             confirmacao_vol_pega[programa]=1;
-            funcao_salvo_agree1();
-           ok_agree1();
-            wait(1);
-            funcao_salvo_agree2();
-            ok_agree2();
             status_tela = "salvo_confirmacao";
+            continuar = 1;
+            troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
             }//salva essa posição como correta
         else if(tecla =='B' && status_tela =="salvo_conf_vol_pega"){             
-            funcao_salvo_agree1();
-            ok_agree1();
-            wait(1);
-            funcao_salvo_agree2(); 
-            ok_agree2();
-            status_tela = "salvo_confirmacao";}  
+            status_tela = "salvo_confirmacao";
+            continuar = 1;
+            troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
+            }  
         
         //Ações para a tela de salvo_pos_certo_solta
         if(tecla =='1' && status_tela =="salvo_pos_certo_"){
             confirmacao_vol_solta[programa]=1; //Tag que indica que o usuário confirmou a posição salva
-            funcao_salvo_agree1();
-            ok_agree1();
-            wait(1);
-            funcao_salvo_agree2();
-            ok_agree2();
             status_tela = "salvo_confirmacao";
+            continuar = 1;
+            troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
             }//salva essa posição como correta
         else if(tecla =='2' && status_tela =="salvo_pos_certo_solta"){
             lcd.cls();
@@ -606,34 +584,24 @@
                     lcd.printf("Posicao X: %4.1f", coord_x);
                     lcd.locate(0,2);
                     lcd.printf("Posicao Y: %4.1f", coord_y);
-                    funcao_salvo_agree1();
-                    ok_agree1();
-                    wait(1);
-                    funcao_salvo_agree2(); 
-                    ok_agree2();
                     status_tela = "salvo_confirmacao";
                     confirmacao_pos_solta[programa]=1; //Flag que mostra que o usuário setou a posição conforme ele queria e está confirmado.
+                    troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
                     continuar = 0;
                 }
             }
         }
         else if(tecla =='B' && status_tela =="salvo_pos_certo_solta"){             
-            funcao_salvo_agree1();
-            ok_agree1();
-            wait(1);
-            funcao_salvo_agree2(); 
-            ok_agree2();
-            status_tela = "salvo_confirmacao";}      
+            status_tela = "salvo_confirmacao";
+            continuar = 1;
+            troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);}      
         
         //Ações para a tela salvo_conf_vol_solta
         if(tecla =='A' && status_tela =="salvo_conf_vol_solta"){
-            confirmacao_vol_solta[programa]=1;
-            funcao_salvo_agree1();
-            ok_agree1();
-            wait(1);
-            funcao_salvo_agree2();
-            ok_agree2();   
-            status_tela = "salvo_confirmacao";        
+            confirmacao_vol_solta[programa]=1; 
+            status_tela = "salvo_confirmacao";   
+            continuar = 1;
+            troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);     
             }//salva essa posição como correta
         else if(tecla =='2' && status_tela =="salvo_conf_vol_solta"){
             funcao_salvo_vol_solta_modifica();
@@ -801,12 +769,9 @@
             }
             confirmacao_vol_solta[programa]=1;}
         else if(tecla =='B' && status_tela =="salvo_conf_vol_solta"){             
-            funcao_salvo_agree1();
-            ok_agree1();
-            wait(1);
-            funcao_salvo_agree2(); 
-            ok_agree2();
-            status_tela = "salvo_confirmacao";}          
+            status_tela = "salvo_confirmacao";
+            continuar = 1;
+            troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);}          
                       
         tecla = pega_tecla(); 
         
@@ -953,74 +918,35 @@
             }
         }
         else if(tecla == 'B' && status_tela == "forma"){
-            funcao_pega1();
-            if(medida_lado_pega !=0){
-                lcd.locate(18,1);lcd.printf("OK");   
-            }
-            if(volume_pega !=0){
-                lcd.locate(18,2);lcd.printf("OK");
-            }
-            wait(1);
-            funcao_pega2();
-            if(pos_y_pega[programa] !=0){
-                lcd.locate(18,1);lcd.printf("OK");    
-            }
-            status_tela = "novo";}
+            status_tela = "novo";
+            continuar = 1;
+            troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3);
+        }
         
         tecla = pega_tecla();
         
         //Ações para a tela forma_quad, para detalhes sobre o formato quadrado
         if(tecla == 'A' && status_tela == "forma_quad"){
-            funcao_pega1();
-            medida_lado_pega[programa] = comprimento_quad;
-            if(medida_lado_pega !=0){
-                lcd.locate(18,1);lcd.printf("OK");   
+            status_tela ="novo";
+            continuar = 1;
+            troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3);
             }
-            if(volume_pega !=0){
-                lcd.locate(18,2);lcd.printf("OK");
-            }
-            wait(1);
-            funcao_pega2();
-            if(pos_y_pega[programa] !=0){
-                lcd.locate(18,1);lcd.printf("OK");    
-            }
-            status_tela ="novo";}
         else if(tecla == 'B' && status_tela == "forma_quad"){
             funcao_pega_forma();
             status_tela = "forma";}
         else if(tecla == 'A' && status_tela == "forma_red"){
             medida_lado_pega[programa] = diametro;
-            funcao_pega1();
-            if(medida_lado_pega !=0){
-                lcd.locate(18,1);lcd.printf("OK");   
-            }
-            if(volume_pega !=0){
-                lcd.locate(18,2);lcd.printf("OK");
-            }
-            wait(1);
-            funcao_pega2();
-            if(volume_pega !=0){
-            lcd.locate(18,0);lcd.printf("OK");    
-            }
-            status_tela ="novo";}
+            continuar = 1;
+            status_tela ="novo";
+            troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3);}
         else if(tecla == 'B' && status_tela == "forma_red"){
             funcao_pega_forma();
             status_tela = "forma";}
         else if(tecla == 'A' && status_tela == "volume"){
-            funcao_pega1();
             volume_pega[programa] = 12;
-            if(medida_lado_pega !=0){
-                lcd.locate(18,1);lcd.printf("OK");   
-            }
-            if(volume_pega !=0){
-                lcd.locate(18,2);lcd.printf("OK");
-            }
-            wait(1);
-            funcao_pega2();
-            if(pos_y_pega[programa] !=0){
-                lcd.locate(18,1);lcd.printf("OK");    
-            }
-            status_tela ="novo";}
+            status_tela ="novo";
+            continuar = 1;
+            troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3);}
         else if( tecla == 'B' && status_tela == "volume"){
             funcao_pega_forma();
             status_tela = "forma";}
@@ -1045,19 +971,9 @@
             }
             }
         else if(tecla == 'B' && status_tela == "pos_x"){ ///!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-            funcao_pega1();
-            if(medida_lado_pega !=0){
-                lcd.locate(18,1);lcd.printf("OK");   
-            }
-            if(volume_pega !=0){
-                lcd.locate(18,2);lcd.printf("OK");
-            }
-            wait(1);
-            funcao_pega2();
-            if(pos_y_pega[programa] !=0){
-                lcd.locate(18,1);lcd.printf("OK");    
-            }
-            status_tela = "novo";}
+            status_tela = "novo";
+            continuar = 1;
+            troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3);}
             
         tecla = pega_tecla();
 //        wait(0.5);
@@ -1065,20 +981,10 @@
         
         //Ações para a tela pos_y
         if(tecla == 'A' && status_tela == "pos_y"){
-            funcao_pega1();
-            if(medida_lado_pega !=0){
-                lcd.locate(18,1);lcd.printf("OK");   
-            }
-            if(volume_pega !=0){
-                lcd.locate(18,2);lcd.printf("OK");
+            status_tela ="novo";
+            continuar = 1;
+            troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3);
             }
-            wait(1);
-            funcao_pega2();
-             if(pos_y_pega[programa] !=0){
-                lcd.locate(18,1);lcd.printf("OK");    
-            }
-            wait(1);
-            status_tela ="novo";}
             
         else if(tecla == 'B' && status_tela == "pos_y"){
             funcao_pega_pos_x();
@@ -1132,19 +1038,9 @@
                 else if(tecla=='B'){
                     funcao_pega_forma();
                     status_tela = "solta";
-                    funcao_solta1();
-                    if(volume_solta_9[programa] !=0){
-                        lcd.locate(18,2);lcd.printf("OK");   
-                    }
-                    if(dimensao_solta[programa] !=0){
-                        lcd.locate(18,1);lcd.printf("OK");
+                    continuar = 1;
+                    troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
                     }
-                    wait(3);
-                    funcao_solta2();
-                    if(pos_y_solta[programa] !=0){
-                        lcd.locate(18,1);lcd.printf("OK");    
-                    }
-                    continuar = 0;}
                 }
         }
 
@@ -1169,22 +1065,11 @@
                 else if(tecla=='B'){
                     funcao_pega_forma();
                     status_tela = "solta";
-                    continuar = 0;
-                    funcao_solta1();
-                    if(volume_solta_9[programa] !=0){
-                        lcd.locate(18,2);lcd.printf("OK");   
-                    }
-                    if(dimensao_solta !=0){
-                        lcd.locate(18,1);lcd.printf("OK");
-                    }
-                    wait(3);
-                    funcao_solta2();
-                    if(pos_y_solta !=0){
-                        lcd.locate(18,1);lcd.printf("OK");    
-                    }
-                    }
+                    continuar = 1;
+                    troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
                 }
             }
+        }
         else if(tecla == '3' && status_tela == "solta"){
             funcao_solta_pos_x();
             status_tela="solta_pos_x";
@@ -1205,55 +1090,23 @@
             }
         }   
         else if(tecla == 'B' && status_tela == "solta"){
-            funcao_pega1();
-            if(medida_lado_pega !=0){
-                lcd.locate(18,1);lcd.printf("OK");   
-            }
-            if(volume_pega !=0){
-                lcd.locate(18,2);lcd.printf("OK");
-            }
-            wait(1);
-            funcao_pega2();
-            if(pos_y_pega[programa] !=0){
-                lcd.locate(18,1);lcd.printf("OK");    
-            }
+            continuar = 1;
             status_tela="novo";
+            troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa],volume_pega[programa], pos_y_pega[programa],0,3);
             }
         
         tecla=pega_tecla();
         //Ações para a tela solta_dimensao, para definir informações sobre a dimensão do solta
         if(tecla=='A' && status_tela=="solta_dimensao"){
             dimensao_solta[programa] = 10;
-            funcao_solta1();
-            if(volume_solta_9[programa] !=0){
-                lcd.locate(18,2);lcd.printf("OK");   
-            }
-            if(dimensao_solta[programa] !=0){
-                lcd.locate(18,1);lcd.printf("OK");
-            }
-            wait(3);
-            funcao_solta2();
-            if(pos_y_solta[programa] !=0){
-                lcd.locate(18,1);lcd.printf("OK");    
-            }
-            wait(3);
+            continuar = 1;
             status_tela="solta";   
+            troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
             }
         else if(tecla=='B' && status_tela=="solta_dimensao"){
-            funcao_solta1();
-            if(volume_solta_9[programa] !=0){
-                lcd.locate(18,2);lcd.printf("OK");   
-            }
-            if(dimensao_solta[programa] !=0){
-                lcd.locate(18,1);lcd.printf("OK");
-            }
-            wait(3);
-            funcao_solta2();
-            if(pos_y_solta[programa] !=0){
-                lcd.locate(18,1);lcd.printf("OK");    
-            }
-            wait(3);
-            status_tela="solta";     
+            continuar = 1;
+            status_tela="solta"; 
+            troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);    
             }
         if(tecla=='1' && status_tela=="solta_vol"){
             funcao_solta_vol_igual();
@@ -1264,20 +1117,9 @@
             status_tela="solta_vol_dif";
             }
         else if(tecla=='B' && status_tela=="solta_vol"){
-            funcao_solta1();
-            if(volume_solta_9[programa] !=0){
-                lcd.locate(18,2);lcd.printf("OK");   
-            }
-            if(dimensao_solta !=0){
-                lcd.locate(18,1);lcd.printf("OK");
-            }
-            wait(3);
-            funcao_solta2();
-            if(pos_y_solta[programa] !=0){
-                lcd.locate(18,1);lcd.printf("OK");    
-            }
-            wait(3);
             status_tela="solta";  
+            continuar = 1;
+            troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
             }
         if(tecla=='A' && status_tela=="solta_pos_x"){
             funcao_solta_pos_y();
@@ -1285,20 +1127,9 @@
             status_tela="solta_pos_y";
             }
         else if(tecla=='B' && status_tela=="solta_pos_x"){
-            funcao_solta1();
-            if(volume_solta_9[programa] !=0){
-                lcd.locate(18,2);lcd.printf("OK");   
-            }
-            if(dimensao_solta[programa] !=0){
-                lcd.locate(18,1);lcd.printf("OK");
-            }
-            wait(3);
-            funcao_solta2();
-            if(pos_y_solta[programa] !=0){
-            lcd.locate(18,1);lcd.printf("OK");    
-            }
-            wait(3);
             status_tela="solta";  
+            continuar = 1;
+            troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
             }  
             
         tecla=pega_tecla();
@@ -1313,20 +1144,10 @@
             volume_solta_8[programa]=10;
             volume_solta_9[programa]=10;
             
-            funcao_solta1();
-            if(volume_solta_9[programa] !=0){
-                lcd.locate(18,2);lcd.printf("OK");   
-            }
-            if(dimensao_solta[programa] !=0){
-                lcd.locate(18,1);lcd.printf("OK");
+            status_tela="solta";
+            continuar = 1;
+            troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
             }
-            wait(3);
-            funcao_solta2();
-            if(pos_y_solta[programa] !=0){
-                lcd.locate(18,1);lcd.printf("OK");    
-            }
-            wait(3);
-            status_tela="solta";}
         else if(tecla=='B' && status_tela=="solta_vol_igual"){
             funcao_solta_vol();
             status_tela="solta_vol";
@@ -1368,51 +1189,24 @@
             lcd.locate(18,2);lcd.printf("90");
             }
         if(tecla=='A' && status_tela=="solta_vol_dif"){
-            funcao_solta1();
-            if(volume_solta_9[programa] !=0){
-                lcd.locate(18,2);lcd.printf("OK");   
-            }
-            if(dimensao_solta[programa] !=0){
-                lcd.locate(18,1);lcd.printf("OK");
-            }
-            wait(3);
-            funcao_solta2();
-            if(pos_y_solta !=0){
-                lcd.locate(18,1);lcd.printf("OK");    
-            }
-            wait(3);
-            status_tela="solta"; 
+            status_tela="solta";
+            continuar = 1;
+            troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3); 
             }
         else if(tecla=='B' && status_tela=="solta_vol_dif"){
             funcao_solta_vol();
             status_tela="solta_vol";
             }
         if(tecla=='A' && status_tela=="solta_pos_y"){
-            funcao_solta1();
-            if(volume_solta_9[programa] !=0){
-                lcd.locate(18,2);lcd.printf("OK");   
-            }
-            if(dimensao_solta[programa] !=0){
-                lcd.locate(18,1);lcd.printf("OK");
-            }
-            wait(3);
-            funcao_solta2();
-             if(pos_y_solta[programa] !=0){
-                lcd.locate(18,1);lcd.printf("OK");    
-            }
-            pos_y_solta[programa] = 10;
-            wait(3);
             status_tela="solta"; 
+            continuar = 1;
+            troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
             }
          else if(tecla=='B' && status_tela=="solta_pos_y"){
-            funcao_solta1();
-            if(volume_solta_9[programa] !=0){lcd.locate(18,2);lcd.printf("OK");}
-            if(dimensao_solta[programa] !=0){lcd.locate(18,1);lcd.printf("OK");}
-            funcao_solta2();
-            if(pos_y_solta[programa] !=0){lcd.locate(18,1);lcd.printf("OK");}
-            pos_y_solta[programa] = 10;
-            wait(3);
-            status_tela="solta";}
+            status_tela="solta";
+            continuar = 1;
+            troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
+            }
         //Ações para a tela acompanhamento (execução do programa)
         //MAtriz 3x3 (6x6cm)
         int nome;
@@ -1422,14 +1216,10 @@
            funcao_nome_prog();
            status_tela="nome_programa";}
             if(tecla=='B' && status_tela=="nome_programa"){
-                funcao_solta1();
-                if(volume_solta_9[programa] !=0){lcd.locate(18,2);lcd.printf("OK");}
-                if(dimensao_solta[programa] !=0){lcd.locate(18,1);lcd.printf("OK");}
-                funcao_solta2();
-                if(pos_y_solta[programa] !=0){lcd.locate(18,1);lcd.printf("OK");}
                 pos_y_solta[programa] = 10;
-                wait(3);
                 status_tela="solta";
+                continuar = 1;
+                troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
                } 
            else if(tecla=='A' && status_tela=="nome_programa"){
                  //!!!!!!!!!!!!!! colocar o códgio de pegar o valor do usuário