1

Тема: ESP32-C3 TDA7719 TFT9341

I tested the compilation and it worked. I uploaded it to the board, but there is no screenshot. I don't know where the problem is.


#include <TFT_eSPI.h> // Hardware-specific library
#include <SPI.h>
#include <TDA7719.h>
#include <Encoder.h>
#include <EEPROM.h>
//#include <MsTimer2.h>

//#define TFT_MOSI  PIN_D7  // 
//#define TFT_SCLK  PIN_D5  // 
//#define TFT_CS    PIN_D6  // Chip select control
//#define TFT_DC    PIN_D4  // Data Command control pin
//#define TFT_RST   PIN_D3

TDA7719 tda;
TFT_eSPI tft = TFT_eSPI();       // Invoke custom library
Encoder myEnc(10, 9);//CLK, DT encoder connection

int k=1,i,q=1,y=1,w1=1,w2=1,w3=1,w4=1,w5=1,w6=1,w7=1,w8=1,w9=1,w10=1,w11=1,w12=1,w13=1,w14=1,w15=1,w16=1,w17=1,w18=1,w19=1,w20=1,w21=1;
int v0=1,v1=1,v2=1,v3=1,v4=1,v5=1,v6=1,v7=1,v8=1,v9=1,v10=1,v11=1,v12=1,v13=1,v14=1,v15=1,v16=1,v17=1,v18=1,v19=1,v20=1;
int w=1,ccc,xxx=1,menu=0,menu_old,vol,in,in0,loun,loun_f,vol_att,treb,treb_f,mid,mid_q,bass,bass_q,sub_f,phase,mid_f,bass_f,att_lf,att_rf,att_lr,att_rr,att_l,att_r,vol0,vol1,vol2,vol3,vol4,vol5;
unsigned long newPosition,oldPosition  = -999,newPosition1,oldPosition1  = -999;

//byte power;
//long time0,times1;

// Rotary Encoder Inputs
 #define encoderCLK 10   //S3
 #define encoderDT 9   //S2
 #define encoderSW 16    //D0

void setup(void) {
   Serial.begin(9600);
  
   pinMode (encoderCLK,INPUT);
   pinMode (encoderDT,INPUT);
   pinMode (encoderSW, INPUT);

   vol = EEPROM.read(0)-79;treb = EEPROM.read(1)-15;treb_f = EEPROM.read(2);mid = EEPROM.read(3)-15;mid_f = EEPROM.read(4);bass = EEPROM.read(5)-15;bass_f = EEPROM.read(6);
   loun = EEPROM.read(7)-15;loun_f = EEPROM.read(8);att_lf=EEPROM.read(9)-30;att_rf=EEPROM.read(10)-30;att_lr=EEPROM.read(11)-30;att_rr=EEPROM.read(12)-30;
   att_l=EEPROM.read(13)-30;att_r=EEPROM.read(14)-30;sub_f=EEPROM.read(15);phase=EEPROM.read(16);bass_q=EEPROM.read(17);mid_q=EEPROM.read(18);
   in0=EEPROM.read(19);vol0=EEPROM.read(20)-15;vol1=EEPROM.read(21)-15;vol2=EEPROM.read(22)-15;vol3=EEPROM.read(23)-15;vol4=EEPROM.read(24)-15;inn();vol5=EEPROM.read(25)-15;inn();
   delay(300);audio();// we transfer all settings from memory to tda

  tft.begin();
  //tft.init();
  tft.setRotation(1);
  for(int i=0; i<2; i++){                                                
    tft.drawLine(0+i,0+i,319-i*2,239-i*2,TFT_OLIVE);}      //draw the outer border (0+i,0+i,319-i*2,239-i*2)
    //tft.drawRFrame(10,10,299,219,8,TFT_OLIVE);             //draw an inner border with rounded corners

  tft.fillScreen(TFT_BLACK);
  tft.setTextSize(3);
  tft.setTextColor(TFT_YELLOW);
  tft.setCursor(35, 80);
  tft.print("AUDIO PROCEESOR");
  tft.setTextColor(TFT_GREEN);
  tft.setCursor(60, 120);
  tft.print("TONE CONTROL");
  tft.setCursor(120, 160);
  tft.print("HI-END");

}
void to_Timer(){newPosition = myEnc.read()/4;} // interrupt function
void loop() {
     if(digitalRead(encoderSW)==LOW){xxx++;myEnc.write(0);millis();delay(200);screen();k=1;if(xxx>1){xxx=0;}}// encoder button activation analogRead
   tft.setTextSize(1);
   set_menu();
  /////////////////////////////////////////// processing encoder commands  
    if(menu==0&&xxx==1){
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      vol=vol+newPosition;myEnc.write(0);newPosition=0;w=1;w1=1;if(vol>0){vol=0;}if(vol<-79){vol=-79;}audio();}}
    if(menu==1&&xxx==1){
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      treb=treb+newPosition;myEnc.write(0);newPosition=0;w=1;w2=1;if(treb>15){treb=15;}if(treb<-15){treb=-15;}audio();}}
    if(menu==2&&xxx==1){
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      mid=mid+newPosition;myEnc.write(0);newPosition=0;w=1;w3=1;if(mid>15){mid=15;}if(mid<-15){mid=-15;}audio();}}
    if(menu==3&&xxx==1){
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      bass=bass+newPosition;myEnc.write(0);newPosition=0;w=1;w4=1;if(bass>15){bass=15;}if(bass<-15){bass=-15;}audio();}}
    if(menu==4&&xxx==1){
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      in0=in0+newPosition;myEnc.write(0);newPosition=0;w=1;w5=1;w6=1;if(in0>5){in0=0;}if(in0<0){in0=5;}
         inn();set_vol_att();audio();}}
         inn();set_vol_att();
    if(menu==5&&xxx==1){inn();
         set_vol_att();
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      vol_att=vol_att+newPosition;myEnc.write(0);newPosition=0;w=1;w6=1;w5=1;if(vol_att<-15){vol_att=-15;}if(vol_att>15){vol_att=15;}audio();}inn();  
      switch(in){case 0: vol0 = vol_att;break;case 1: vol1 = vol_att;break;case 2: vol2 = vol_att;break;case 4: vol5=vol_att;break;case 5: vol3 = vol_att;break;case 6: vol4 = vol_att;break;}}
    if(menu==6&&xxx==1){
       if (newPosition != oldPosition) {
       oldPosition = newPosition;
       att_lf=att_lf+newPosition;myEnc.write(0);newPosition=0;w=1;w7=1;if(att_lf>0){att_lf=0;}if(att_lf<-30){att_lf=-30;}audio();}}  
   if(menu==7&&xxx==1){
       if (newPosition != oldPosition) {
       oldPosition = newPosition;
       att_rf=att_rf+newPosition;myEnc.write(0);newPosition=0;w=1;w8=1;if(att_rf>0){att_rf=0;}if(att_rf<-30){att_rf=-30;}audio();}} 
   if(menu==8&&xxx==1){
       if (newPosition != oldPosition) {
       oldPosition = newPosition;
       att_lr=att_lr+newPosition;myEnc.write(0);newPosition=0;w=1;w9=1;if(att_lr>0){att_lr=0;}if(att_lr<-30){att_lr=-30;}audio();}}
   if(menu==9&&xxx==1){
       if (newPosition != oldPosition) {
       oldPosition = newPosition;
       att_rr=att_rr+newPosition;myEnc.write(0);newPosition=0;w=1;w10=1;if(att_rr>0){att_rr=0;}if(att_rr<-30){att_rr=-30;}audio();}}
   if(menu==10&&xxx==1){
       if (newPosition != oldPosition) {
       oldPosition = newPosition;
       att_l=att_l+newPosition;myEnc.write(0);newPosition=0;w=1;w11=1;if(att_l>0){att_l=0;}if(att_l<-30){att_l=-30;}audio();}}
   if(menu==11&&xxx==1){
       if (newPosition != oldPosition) {
       oldPosition = newPosition;
       att_r=att_r+newPosition;myEnc.write(0);newPosition=0;w=1;w12=1;if(att_r>0){att_r=0;}if(att_r<-30){att_r=-30;}audio();}}
   if(menu==12&&xxx==1){
       if (newPosition != oldPosition) {
       oldPosition = newPosition;
       loun_f=loun_f+newPosition;myEnc.write(0);newPosition=0;w=1;w13=1;if(loun_f>3){loun_f=0;}if(loun_f<0){loun_f=3;}audio();}} 
   if(menu==13&&xxx==1){
       if (newPosition != oldPosition) {
       oldPosition = newPosition;
       loun=loun+newPosition;myEnc.write(0);newPosition=0;w=1;w14=1;if(loun>0){loun=0;}if(loun<-15){loun=-15;}audio();}}
   if(menu==14&&xxx==1){
       if (newPosition != oldPosition) {
       oldPosition = newPosition;
       treb_f=treb_f+newPosition;myEnc.write(0);newPosition=0;w=1;w15=1;if(treb_f>3){treb_f=0;}if(treb_f<0){treb_f=3;}audio();}}
   if(menu==15&&xxx==1){
       if (newPosition != oldPosition) {
       oldPosition = newPosition;
       mid_f=mid_f+newPosition;myEnc.write(0);newPosition=0;w=1;w16=1;if(mid_f>3){mid_f=0;}if(mid_f<0){mid_f=3;}audio();}}
   if(menu==16&&xxx==1){
       if (newPosition != oldPosition) {
       oldPosition = newPosition;
       bass_f=bass_f+newPosition;myEnc.write(0);newPosition=0;w=1;w17=1;if(bass_f>3){bass_f=0;}if(bass_f<0){bass_f=3;}audio();}}
   if(menu==17&&xxx==1){
       if (newPosition != oldPosition) {
       oldPosition = newPosition;
       sub_f=sub_f+newPosition;myEnc.write(0);newPosition=0;w=1;w18=1;if(sub_f>3){sub_f=0;}if(sub_f<0){sub_f=3;}audio();}}
   if(menu==18&&xxx==1){
       if (newPosition != oldPosition) {
       oldPosition = newPosition;
       mid_q=mid_q+newPosition;myEnc.write(0);newPosition=0;w=1;w19=1;if(mid_q>3){mid_q=0;}if(mid_q<0){mid_q=3;}audio();}}
   if(menu==19&&xxx==1){
       if (newPosition != oldPosition) {
       oldPosition = newPosition;
       bass_q=bass_q+newPosition;myEnc.write(0);newPosition=0;w=1;w20=1;if(bass_q>3){bass_q=0;}if(bass_q<0){bass_q=3;}audio();}}
   if(menu==20&&xxx==1){
       if (newPosition != oldPosition) {
       oldPosition = newPosition;
       phase=phase+newPosition;myEnc.write(0);newPosition=0;w=1;w21=1;if(phase>1){phase=0;}if(phase<0){phase=1;}audio();}}

   set_menu();
    ///// Output of tda adjustment names
          if(v0==1){   if(menu==0) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                       else tft.setTextColor(TFT_WHITE); // 0xf5,0xe0,0x12
                       else tft.setTextColor(TFT_BLUE);tft.setCursor(5,13);tft.print("VOLUME");tft.setCursor(290,13);tft.print("dB");  v0=0;}
          if(v1==1){   if(menu==1) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                       else tft.setTextColor(TFT_WHITE);
                       else tft.setTextColor(TFT_YELLOW);tft.setCursor(5,30);tft.print("TREBLE");tft.setCursor(290,30);tft.print("dB"); v1=0;}
          if(v2==1){   if(menu==2) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                       else tft.setTextColor(TFT_WHITE);
                       else tft.setTextColor(TFT_GREEN);tft.setCursor(5,45);tft.print("MIDDLE");tft.setCursor(290,45);tft.print("dB");v2=0;}
          if(v3==1){   if(menu==3) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                       else tft.setTextColor(TFT_WHITE);
                       else tft.setTextColor(TFT_RED);tft.setCursor(5,60);tft.print("BASS  ");tft.setCursor(290,60);tft.print("dB");v3=0;}
          if(v4==1){   if(menu==4) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                       else tft.setTextColor(255,255,255);
                       else tft.setTextColor(TFT_OLIVE);tft.setCursor(5,75);tft.print("IN ");v4=0;}
          if(v5==1){   if(menu==5) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                       else tft.setTextColor(TFT_WHITE);
                       else tft.setTextColor(TFT_OLIVE);tft.setCursor(160,75);tft.print("ATT");tft.setCursor(290,75);tft.print("dB");v5=0;}
          if(v6==1){   if(menu==6) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                       else tft.setTextColor(TFT_WHITE);
                       else tft.setTextColor(TFT_OLIVE);tft.setCursor(5,90);tft.print("ATT LF");v6=0;}
          if(v7==1){   if(menu==7) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                       else tft.setTextColor(255,255,255);
                       else tft.setTextColor(TFT_OLIVE);tft.setCursor(160,90);tft.print("ATT RF");v7=0;}
          if(v8==1){   if(menu==8) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                       else tft.setTextColor(TFT_WHITE);
                       else tft.setTextColor(TFT_OLIVE);tft.setCursor(5,105);tft.print("ATT LR");v8=0;}
          if(v9==1){   if(menu==9) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                       else tft.setTextColor(TFT_WHITE);
                       else tft.setTextColor(TFT_OLIVE);tft.setCursor(160,105);tft.print("ATT RR");v9=0;}
          if(v10==1){ if(menu==10) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                      else tft.setTextColor(TFT_WHITE);
                      else tft.setTextColor(TFT_OLIVE);tft.setCursor(5,120);tft.print("ATT SL");v10=0;}
          if(v11==1){ if(menu==11) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                      else tft.setTextColor(TFT_WHITE);
                      else tft.setTextColor(TFT_OLIVE);tft.setCursor(160,120);tft.print("ATT SR");v11=0;}
          if(v12==1){ if(menu==12) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                      else tft.setTextColor(TFT_WHITE);
                      else tft.setTextColor(TFT_OLIVE);tft.setCursor(5,135);tft.print("LN");v12=0;}
          if(v13==1){ if(menu==13) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                      else tft.setTextColor(TFT_WHITE);
                      else tft.setTextColor(TFT_OLIVE);tft.setCursor(180,135);tft.print("ATT");v13=0;}
          if(v14==1){ if(menu==14) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                      else tft.setTextColor(TFT_WHITE);
                      else tft.setTextColor(TFT_OLIVE);tft.setCursor(5,150);tft.print("Treb CF");v14=0;}
          if(v15==1){ if(menu==15) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                      else tft.setTextColor(TFT_WHITE);
                      else tft.setTextColor(128, 128, 0);tft.setCursor(5,165);tft.print("Midd CF");v15=0;}
          if(v16==1){ if(menu==16) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                      else tft.setTextColor(TFT_WHITE);
                      else{tft.setTextColor(TFT_OLIVE);}tft.setCursor(5,180);tft.print("Bass CF");v16=0;}
          if(v17==1){ if(menu==17) if(xxx==1)tft.setTextColor(0,165,255);
                      else tft.setTextColor(TFT_WHITE);
                      else tft.setTextColor(TFT_OLIVE);tft.setCursor(5,195);tft.print("Subw CF");v17=0;}
          if(v18==1){ if(menu==18) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                      else tft.setTextColor(TFT_WHITE);
                      else tft.setTextColor(TFT_OLIVE);tft.setCursor(5,210);tft.print("Midd QF");v18=0;}
          if(v19==1){ if(menu==19) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                      else tft.setTextColor(TFT_WHITE);
                      else tft.setTextColor(TFT_OLIVE);tft.setCursor(5,225);tft.print("Bass QF");v19=0;}
          if(v20==1){ if(menu==20) if(xxx==1)tft.setTextColor(TFT_ORANGE);
                      else tft.setTextColor(TFT_WHITE);
                      else tft.setTextColor(TFT_OLIVE);tft.setCursor(5,240);tft.print("Phase Sub");v20=0;}
     set_menu();
///////////////////output of numerical values of parameters
  if(w1==1){tft.setTextColor(TFT_BLUE);tft.drawRect(100,1,100,12,TFT_BLUE); // x,y,w h // drawLine X1,Y1,X2,Y2
   //ucg.setColor(0,0,0);ucg.drawBox(100,1,80,12);
   tft.setTextColor(TFT_WHITE);tft.setCursor(230,15);tft.print(vol);w1=0;}
  if(w2==1){tft.setTextColor(TFT_YELLOW);tft.drawRect(100,16,100,12,TFT_YELLOW);   //ucg.setColor(150+treb*5,150+treb*4,0);ucg.drawLine(110,27,56+treb*4+109,17);
   //ucg.setColor(0,0,0);ucg.drawBox(67+treb*2+110,16,80+treb*2+110,12);
   tft.setTextColor(TFT_WHITE);tft.setCursor(230,30);tft.print(treb);tft.print(" ");w2=0;}
  if(w3==1){tft.setTextColor(TFT_GREEN);tft.drawRect(100,31,100,12,TFT_GREEN); ///ucg.setColor(0,150+mid*5,0);ucg.drawLine(110,42,56+mid*4+109,32);
   //ucg.setColor(0,0,0);ucg.drawLine(57+mid*4+109,42,80+mid*4+109,32);
   tft.setTextColor(TFT_WHITE);tft.setCursor(230,45);tft.print(mid);tft.print(" ");w3=0;}
  if(w4==1){tft.setTextColor(TFT_RED);tft.drawRect(100,46,100,12,TFT_RED); //ucg.setColor(150+bass*5,0,0);ucg.drawLine(110,57,56+bass*4+109,47);
   //ucg.setColor(0,0,0);ucg.drawLine(57+bass*5+109,57,80+bass*4+109,47);
   tft.setTextColor(TFT_WHITE);tft.setCursor(230,60);tft.print(bass);tft.print(" ");w4=0;}
  if(w5==1){tft.setTextColor(TFT_WHITE);  //myGLCD.printNumI(in0,60, 75,1);}
     switch(in0){
      case 0: tft.setCursor(50,75);tft.print("BT_IN");break;
      case 1: tft.setCursor(50,75);tft.print("CD_IN");break;
      case 2: tft.setCursor(50,75);tft.print("TV_IN");break;
      case 3: tft.setCursor(50,75);tft.print("PHONO");break;
      case 4: tft.setCursor(50,75);tft.print("AUX1 ");break;
      case 5: tft.setCursor(50,75);tft.print("AUX2 ");break;
     }
  }  
  if(w5==1||w6==1){tft.setTextColor(TFT_WHITE);tft.setCursor(225,75);tft.print(vol_att);tft.print(" ");w6=0;w5=0;}
  if(w7==1){tft.setTextColor(TFT_WHITE);tft.setCursor(100,90);tft.print(att_lf);tft.print(" ");w7=0;}
  if(w8==1){tft.setTextColor(TFT_WHITE);tft.setCursor(265,90);tft.print(att_rf);tft.print(" ");w8=0;}
  if(w9==1){tft.setTextColor(TFT_WHITE);tft.setCursor(100,105);tft.print(att_lr);tft.print(" ");w9=0;}
  if(w10==1){tft.setTextColor(TFT_WHITE);tft.setCursor(265,105);tft.print(att_rr);tft.print(" ");w10=0;}
  if(w11==1){tft.setTextColor(TFT_WHITE);tft.setCursor(100,120);tft.print(att_l);tft.print(" ");w11=0;}
  if(w12==1){tft.setTextColor(TFT_WHITE);tft.setCursor(265,120);tft.print(att_r);tft.print(" ");w12=0;}
  if(w13==1){tft.setTextColor(TFT_WHITE);
   switch(loun_f){case 0: tft.setCursor(50,135);tft.print(" FLAT  ");break;
                  case 1: tft.setCursor(50,135);tft.print("400 Hz ");break;
                  case 2: tft.setCursor(50,135);tft.print("800 Hz ");break;
                  case 3: tft.setCursor(50,135);tft.print("2.4 kHz");break;};w13=0;}
  if(w14==1){tft.setTextColor(TFT_WHITE);tft.setCursor(265,135);tft.print(loun);tft.print(" ");w14=0;}
  if(w15==1){tft.setTextColor(TFT_WHITE);
    switch(treb_f){case 0: tft.setCursor(210,150);tft.print("10.0 kHz");break;
                   case 1: tft.setCursor(210,150);tft.print("12.5 kHz");break;
                   case 2: tft.setCursor(210,150);tft.print("15.0 kHz");break;
                   case 3: tft.setCursor(210,150);tft.print("17.5 kHz");break;}w15=0;}
  if(w16==1){tft.setTextColor(TFT_WHITE);
    switch(mid_f){case 0: tft.setCursor(220,165);tft.print("0.5 kHz");break;
                  case 1: tft.setCursor(220,165);tft.print("1.0 kHz");break;
                  case 2: tft.setCursor(220,165);tft.print("1.5 kHz");break;
                  case 3: tft.setCursor(220,165);tft.print("2.5 kHz");break;}w16=0;}
  if(w17==1){tft.setTextColor(TFT_WHITE);
    switch(bass_f){case 0: tft.setCursor(220,180);tft.print(" 60 Hz");break;
                   case 1: tft.setCursor(220,180);tft.print(" 80 Hz");break;
                   case 2: tft.setCursor(220,180);tft.print("100 Hz");break;
                   case 3: tft.setCursor(220,180);tft.print("200 Hz");break;}w17=0;}
  if(w18==1){tft.setTextColor(TFT_WHITE);
    switch(sub_f){case 0: tft.setCursor(220,195);tft.print(" FLAT  ");break;
                  case 1: tft.setCursor(220,195);tft.print(" 80 Hz ");break;
                  case 2: tft.setCursor(220,195);tft.print("120 Hz");break;
                  case 3: tft.setCursor(220,195);tft.print("160 Hz");break;}w18=0;}
  if(w19==1){tft.setTextColor(TFT_WHITE);
    switch(mid_q){case 0: tft.setCursor(240,210);tft.print("0.5 ");break;
                  case 1: tft.setCursor(240,210);tft.print("0.75");break;
                  case 2: tft.setCursor(240,210);tft.print("1.0 ");break;
                  case 3: tft.setCursor(240,210);tft.print("1.25");break;}w19=0;}
  if(w20==1){tft.setTextColor(255,255,255);
    switch(bass_q){case 0: tft.setCursor(240,225);tft.print("1.0 ");break;
                   case 1: tft.setCursor(240,225);tft.print("1.25");break;
                   case 2: tft.setCursor(240,225);tft.print("1.5 ");break;
                   case 3: tft.setCursor(240,225);tft.print("2.0 ");break;}w20=0;}
  if(w21==1){tft.setTextColor(TFT_WHITE);
    switch(phase){case 0: tft.setCursor(240,240);tft.print("180");break;
                 case 1: tft.setCursor(240,240);tft.print("  0");break;}w21=0;}

     ///////////////////// EEPROM /////////////////////////////////////////////
 if(millis()>10000&&w==1){ inn();
     EEPROM.write(0,vol+79);EEPROM.write(1,treb+15);EEPROM.write(2,treb_f);EEPROM.write(3,mid+15);EEPROM.write(4,mid_f);EEPROM.write(5,bass+15);EEPROM.write(6,bass_f);
     EEPROM.write(7,loun+15);EEPROM.write(8,loun_f);EEPROM.write(9,att_lf+30);EEPROM.write(10,att_rf+30);EEPROM.write(11,att_lr+30);EEPROM.write(12,att_rr+30);
     EEPROM.write(13,att_l+30);EEPROM.write(14,att_r+30);EEPROM.write(15,sub_f);EEPROM.write(16,phase);EEPROM.write(17,bass_q);EEPROM.write(18,mid_q);
     EEPROM.write(18,mid_q);EEPROM.write(19,in0);EEPROM.write(20,vol0+15);EEPROM.write(21,vol1+15);EEPROM.write(22,vol2+15);EEPROM.write(23,vol3+15);EEPROM.write(24,vol4+15);
     EEPROM.write(25,vol5+15);
     w=0;menu=0;v0=1,v1=1,v2=1,v3=1,v4=1,v5=1,v6=1,v7=1,v8=1,v9=1,v10=1,v11=1,v12=1,v13=1,v14=1,v15=1,v16=1,v17=1,v18=1,v19=1,v20=1;y=0;xxx=1;
     }

}// loop
void screen(){ //////////// to save resources when changing when moving through parameters, update only the last two parameters
  switch(menu){
    case 0: v20=1;v0=1;v1=1; set_menu();break;
    case 1: v0=1;v1=1;v2=1; set_menu();break;
    case 2: v1=1;v2=1;v3=1; set_menu();break;
    case 3: v2=1;v3=1;v4=1; set_menu();break;
    case 4: v3=1;v4=1;v5=1; set_menu();break;
    case 5: v4=1;v5=1;v6=1; set_menu();break;
    case 6: v5=1;v6=1;v7=1; set_menu();break;
    case 7: v6=1;v7=1;v8=1; set_menu();break;
    case 8: v7=1;v8=1;v9=1; set_menu();break;
    case 9: v8=1;v9=1;v10=1; set_menu();break;
    case 10: v9=1;v10=1;v11=1; set_menu();break;
    case 11: v10=1;v11=1;v12=1; set_menu();break;
    case 12: v11=1;v12=1;v13=1; set_menu();break;
    case 13: v12=1;v13=1;v14=1; set_menu();break;
    case 14: v13=1;v14=1;v15=1; set_menu();break;
    case 15: v14=1;v15=1;v16=1; set_menu();break;
    case 16: v15=1;v16=1;v17=1; set_menu();break;
    case 17: v16=1;v17=1;v18=1; set_menu();break;
    case 18: v17=1;v18=1;v19=1; set_menu();break;
    case 19: v18=1;v19=1;v20=1; set_menu();break;
    case 20: v19=1;v20=1;v0=1; set_menu();break;
    }
  }
//////////////////// menu navigation function
 void set_menu(){if(xxx==0){newPosition1 = myEnc.read()/4;
      if (newPosition1 != oldPosition1) {
      oldPosition1 = newPosition1;
      menu=menu+newPosition1;myEnc.write(0);newPosition1=0;millis();w=1;screen();if(menu>20){menu=0;}if(menu<0){menu=20;}}}else{if(k==1);k=0;}
      }

void set_vol_att(){switch(in){case 0: vol_att = vol0;break;case 1: vol_att = vol1;break;case 2: vol_att = vol2;break;
                               case 4: vol_att = vol5;break;case 5: vol_att = vol3;break;case 6: vol_att = vol4;break;}}
void inn(){if(in0==3){in=6;}else{in=in0;}}

void audio(){
tda.setInput(in,1,1,2); // 0...7, 0...1, 0...1, 0...7
tda.setInput_2(0,0,1,1,1,1); // 0...7, 0...1, 0...1, 0...1, 0...1, 0...1 
tda.setMix_source(7,0); // 0...7, 0...-31
tda.setMix_cont(1,1,1,1,1,1,1,1); // all 0...1
tda.setMute(1,0,0,1,0,1,1); // 0...1, 0...1, 0...3, 0...1, 0...1, 0...1, 0...1
tda.setSoft_1(1,1,1,1,1,1,1,1); //all 0...1
tda.setSoft_2(1,1,1,1,0,3); // 0...1, 0...1, 0...1, 0...1, 0...2, 0...3
tda.setLoudness(loun,loun_f,1,1); // 0...-15, 0...3, 0...1, 0...1 
tda.setVol(vol_att,1,1); // -15...+15, 0...1, 0...1
tda.setTreble(treb,treb_f,1); // -15...+15, 0...3, 0...1
tda.setMiddle(mid,mid_q,1); // -15...+15, 0...3, 0...1
tda.setBass(bass,bass_q,1); // -15...+15, 0...3, 0...1
tda.setSMB(sub_f,phase,mid_f,bass_f,1); // 0...3, 0...1, 0...3, 0...3, 0...1
tda.setVol_LF(vol+att_lf,1); // 0...-79, 0...1
tda.setVol_RF(vol+att_rf,1); // 0...-79, 0...1
tda.setVol_LR(vol+att_lr,1); // 0...-79, 0...1
tda.setVol_RR(vol+att_rr,1); // 0...-79, 0...1
tda.setVol_SUB_L(vol+att_l,1); // 0...-79, 0...1
tda.setVol_SUB_R(vol+att_r,1); // 0...-79, 0...1
tda.setTest1(0,14,1,1); // 0...1, 0...15, 0...1, 0...1
tda.setTest2(0,1,1,3); // 0...1, 0...1, 0...1, 0...3
}