// rev 09-12-2023 //.etc... // rev 19/04/2024 /* dans le main.c const char Libelles_Menus_10[13] [7] = { //rev 12-04-2024 {"CFTcsg"}, // menu 10.1 {"ECOcsg"}, {"HGLcsg"}, {"INTcor"},// menu 10.2 {"NRGind"}, {"NRGcor"}, {"CHDmin"},// menu 10.3 {"CHDmax"}, {"EXTmin"}, {"INThys"},// menu 10.4 {"EXThys"}, {"EAUhys"}, {" "} //efface }; */ // en remplacement de CRam1 dans le traitement des Menus10.1 à 10.4 //char Ram_Menu10[64]; void Test_Sortie_via_SW0() { if( Etats_BP==SW0 && Duree_Appui>1000) //SW0 { Etats_BP=0; Etats_IOCBF=0; Restart_Timeout(); SPas=0; MPas=0; Menu=0; CPrint(" Sortie via SW0>1sec\r\n"); } } void Sortie_Menu10(void) // parametre P=MPas { CPrint(" Sortie Menu sur SW0 ou TimeOut\r\n"); // PrintChar(MPas-1+48); // MPas -1 car liste commmence à indice 0 ! // CRLF1(); if (TMR0IF == 1) { Menu=0; MPas=0; } else { if(SPas>0) { Menu=0; MPas=0; } if (SPas==0) { if (Duree_Appui>1000) { MPas=0; Menu=0; CPrint(" Retour Menu=0\r\n"); } else { MPas=MPas+1; // rev 12-04-2024 4 menus au lieu de 7 if (MPas>4) MPas=1; CPrint(" Boucle sur Menu10."); PrintChar(MPas+48); CRLF1(); } } } __delay_ms(100); Etats_BP=0; SPas=0; IOCBF=0; } void Clignote_Selection(int Mx) { // menu10.1 numero de menu=1 (1-1)*3 +(SPas-2) = 0 (avec SPas=2) // menu10.2 numero de menu=2 (2-1)*3 +(SPas-2) = 3 (avec SPas=2) // menu10.3 numero de menu=3 (3-1)*3 + (SPas-2) = 6 (avec SPas=2) // menu10.4 numero de menu=4 (4-1)*3 +(SPas-2) = 9 (avec SPas=2) int k1=0; //pour debugging //PrintChar('M');PrintChar('x'); //PrintChar((Mx/10)+48); //PrintChar((Mx%10)+48); LCD_Write_CText_At(SPas,1,Libelles_Menus_10[12]); // efface __delay_ms(300); k1=(Mx-1)*3 + (SPas-2); // indice dans la table LCD_Write_CText_At(SPas,1,Libelles_Menus_10[k1]); //pour debugging //PrintChar('C');PrintChar('S'); //PrintChar((k1/10)+48); //PrintChar((k1%10)+48); //CRLF1(); __delay_ms(400); } void Rafraichit_Ligne_Menu_LCD(char D) { Print(Ram_Menus10); CRLF1(); *(Ram_Menus10+8+D)=7; LCD_Write_Text_At(SPas,1,Ram_Menus10); } void MENU10_1_CONSIGNES(void) { // rev 07-04-2024 // float Fm1,Fm2,Fm2defined as global variables int kx=0; unsigned char Step; Debut_1: Step=1; MPas=1; SPas=2; // par defaut Etats_BP=0; // affectations provisoires avec valeurs en cours Fm1 = CFT_csg; Fm2 = ECO_csg; Fm3 = HGL_csg; CPrint("\r\n MENU10.1 CONSIGNES\r\n "); // 09-04-2024 Print(Ram_Menus10);CRLF1(); LCD_Cmd(LCD_CLEAR);__delay_ms(100); sprintf(Ram_Menus10,"101Consigne exit S0L"); Print(Ram_Menus10);CRLF1(); LCD_Write_Text_At(1,1,Ram_Menus10); sprintf(Ram_Menus10,"CFTcsg>%2.1f Sel S1",Fm1); Print(Ram_Menus10);CRLF1(); *(Ram_Menus10+9)=7; LCD_Write_Text_At(2,1,Ram_Menus10); sprintf(Ram_Menus10,"ECOcsg %2.1f +- S2/S3",Fm2); Print(Ram_Menus10);CRLF1(); *(Ram_Menus10+9)=7; LCD_Write_Text_At(3,1,Ram_Menus10); sprintf(Ram_Menus10,"HGLcsg %2.1f save S4L",Fm3); Print(Ram_Menus10);CRLF1(); *(Ram_Menus10+9)=7; LCD_Write_Text_At(4,1,Ram_Menus10); LCD_Chr_At(2,7,'>'); LCD_Chr_At(2,12,'>'); __delay_xSec(1); Etats_BP=0; Restart_Timeout(); // boucle #1 do { if (Etats_BP==SW0) { SPas=0; Step=0; } if ( (Etats_BP==SW1) && (Duree_Appui<1000) ) { SPas++; if(SPas>4) SPas=2; switch(SPas) { case 2: LCD_Chr_At(2,7,'>'); LCD_Chr_At(3,7,' ' ); LCD_Chr_At(4,7,' ' ); break; case 3: LCD_Chr_At(2,7,' '); LCD_Chr_At(3,7,'>' ); LCD_Chr_At(4,7,' ' ); break; case 4: LCD_Chr_At(2,7,' '); LCD_Chr_At(3,7,' ' ); LCD_Chr_At(4,7,'>' ); break; default: break; } Etats_BP=0; Restart_Timeout(); } if( (Etats_BP==SW1) && (Duree_Appui>1000) ) //si SW1L { Etats_BP=0; Restart_Timeout(); if (SPas>1) Step=SPas+10; } if(SPas>1) Clignote_Selection(1); else __delay_xSec(1); } while( ( Step>0) &&( Step <10) && (TMR0IF==0) ) ; if(TMR0IF==1) SPas=0; if(SPas>0) { sprintf(Ram_Menus10,"\r\n Step =%d \r\n",Step); Print(Ram_Menus10); LCD_Chr_At(SPas,7,'*'); __delay_ms(200); Etats_BP=0; Restart_Timeout(); do { if ( Etats_BP==SW2 && Duree_Appui<1000) // SW2 incremente { if ( (Step==12) && (Fm1 < Max_CFT_csg) ) { Fm1 =Fm1 + 0.50; sprintf(Ram_Menus10,"CFTcsg*%2.1f",Fm1); Rafraichit_Ligne_Menu_LCD(1); } if ( (Step==13) && ( Fm2< Max_ECO_csg) ) { Fm2= Fm2+ 0.50; sprintf(Ram_Menus10,"ECOcsg*%2.1f",Fm2); Rafraichit_Ligne_Menu_LCD(1); } if ( (Step==14) && (Fm3< Max_HGL_csg) ) { Fm3=Fm3+ 1.0; kx=(int)Fm3; sprintf(Ram_Menus10,"HGLcsg*%2d.0",kx); Rafraichit_Ligne_Menu_LCD(1); } LCD_Chr_At(3,12,' '); // > face à SAVE SL4L LCD_Chr_At(4,12,' '); __delay_ms(200); LCD_Chr_At(4,12,'>'); __delay_ms(200); Etats_BP=0; Restart_Timeout(); } if (Etats_BP==SW3 && Duree_Appui<1000) // SW3 decremente { if ( (Step==12) && (Fm1 > Min_CFT_csg) ) { Fm1 =Fm1 - 0.50; sprintf(Ram_Menus10,"CFTcsg*%2.1f",Fm1); Rafraichit_Ligne_Menu_LCD(1); } if ( (Step==13) && ( Fm2> Min_ECO_csg) ) { Fm2= Fm2- 0.50; sprintf(Ram_Menus10,"ECOcsg*%2.1f",Fm2); Rafraichit_Ligne_Menu_LCD(1); } if ( (Step==14) && (Fm3> Min_HGL_csg) ) { Fm3=Fm3- 1.0; kx=(int)Fm3; sprintf(Ram_Menus10,"HGLcsg*%2d.0",kx); Rafraichit_Ligne_Menu_LCD(1); } // > face à SAVE SL4L LCD_Chr_At(3,12,' '); __delay_ms(200); LCD_Chr_At(4,12,'>'); __delay_ms(200); Etats_BP=0; Restart_Timeout(); } // etape validation par SW1L ..supprimée 7/04/2024 // STockage en EEPROM if ( ( Etats_BP==SW4) && (Duree_Appui > 1000) && (Step>10 ) ) //SW4L { Restart_Timeout(); Etats_BP=0; Step=Step+10; if (Step==22) { CFT_csg=Fm1; sprintf(Ram_Menus10,"CFT_csg =>%3.1f en Eeprom Travail ..@0%04X \r\n",CFT_csg,Org_Sauve_Param_Travail+ 20) ; Sauve_Float_To_Eeprom(Org_Sauve_Param_Travail+ 20,CFT_csg); Print(Ram_Menus10); } if (Step==23) { ECO_csg=Fm2; sprintf(Ram_Menus10,"ECO_csg =>%3.1f en Eeprom Travail +24 .. @0%04X\r\n",ECO_csg,Org_Sauve_Param_Travail+ 24) ; Sauve_Float_To_Eeprom(Org_Sauve_Param_Travail+ 24,ECO_csg); Print(Ram_Menus10); } if (Step==24) { HGL_csg=Fm3; sprintf(Ram_Menus10,"HGL_csg =>%3.1f en Eeprom Travail +28 .. @0%04X\r\n",HGL_csg,Org_Sauve_Param_Travail+ 28) ; Print(Ram_Menus10); Sauve_Float_To_Eeprom(Org_Sauve_Param_Travail+ 28,ECO_csg); } Etats_BP=0; Restart_Timeout(); LCD_Write_CText_At(SPas,8," --> EEPROM "); __delay_xSec(3); LCD_Write_CText_At(SPas,8," "); Etats_BP=0; Restart_Timeout(); } if (Step>20) { Etats_BP=0; CPrint("goto Debut_1\r\n"); goto Debut_1; } Test_Sortie_via_SW0(); if ((SPas>1) && (Step>0) && (Step<10)) Clignote_Selection(MPas); else __delay_xSec(1); } while( ( TMR0IF == 0) && (Step>1) ); } //if Pas>0 MPas=1; Sortie_Menu10(); } //--------------------------------------------------- void MENU10_2_COMPENSATION(void) { unsigned char cx; unsigned char Step=1; Debut_2: MPas=2; Fm1 = INT_cor; Fm2= NRG_cor; cx= NRG_ind; LCD_Cmd(LCD_CLEAR);__delay_ms(100); Step=1; SPas=2; // par defaut CPrint("\r\n MENU10.2 COMPENSATION\r\n"); // // affectations provisoires LCD_Write_CText_At(1,1,"102Compens exit S0L"); sprintf(Ram_Menus10,"INTcor> %3.1f Sel.S1 ",Fm1); Print(Ram_Menus10);CRLF1(); *(Ram_Menus10+9)=7; LCD_Write_Text_At(2,1,Ram_Menus10); sprintf(Ram_Menus10,"NRGcor %3.1f +- S2/S3",Fm2); Print(Ram_Menus10);CRLF1(); *(Ram_Menus10+9)=7; LCD_Write_Text_At(3,1,Ram_Menus10); sprintf(Ram_Menus10,"NRGind %c save S4L",cx); Print(Ram_Menus10);CRLF1(); LCD_Write_Text_At(4,1,Ram_Menus10); LCD_Chr_At(2,12,'>'); __delay_xSec(1); Etats_BP=0; //12345678901234567890 Restart_Timeout(); do { if (Etats_BP==SW0) { SPas=0; Step=0; } if ( (Etats_BP==SW1) && (Duree_Appui<1000) ) { SPas++; if(SPas>4) SPas=2; switch(SPas) { case 2: LCD_Chr_At(2,7,'>'); LCD_Chr_At(3,7,' ' ); LCD_Chr_At(4,7,' ' ); break; case 3: LCD_Chr_At(2,7,' '); LCD_Chr_At(3,7,'>' ); LCD_Chr_At(4,7,' ' ); break; case 4: LCD_Chr_At(2,7,' '); LCD_Chr_At(3,7,' ' ); LCD_Chr_At(4,7,'>' ); break; default: break; } Etats_BP=0; Restart_Timeout(); } if( (Etats_BP==SW1) && (Duree_Appui>1000) && (SPas>1) ) //si SW1L { Step=SPas+10; Etats_BP=0; Restart_Timeout(); } if(SPas>1) Clignote_Selection(2); else __delay_xSec(1); } while( ( Step>0) &&( Step <10) && (TMR0IF==0) ) ; if(TMR0IF==1) SPas=0; if(SPas>0) { sprintf(Ram_Menus10,"\r\n Step =%d \r\n",Step); Print(Ram_Menus10); LCD_Chr_At(2,12,' '); LCD_Chr_At(3,12,'>'); Restart_Timeout(); switch (Step) { case 12: Fm1 = INT_cor; break; case 13: Fm2= NRG_cor; break; case 14: cx = NRG_ind; break; default: CPrint("Erreur choix \r\n"); break; } LCD_Chr_At(SPas,7,'*'); Restart_Timeout(); Etats_BP=0; do { if ( Etats_BP==SW2 && Duree_Appui<1000) // SW2 incremente { if ( (Step==12) && (Fm1 < Max_INT_cor) ) { Fm1 =Fm1 + 0.50; sprintf(Ram_Menus10,"INTcor* %3.1f",Fm1); Rafraichit_Ligne_Menu_LCD(1); } if ( (Step==13) && ( Fm2< Max_NRG_cor) ) { Fm2= Fm2+ 0.50; sprintf(Ram_Menus10,"NRGcor* %3.1f",Fm2); Rafraichit_Ligne_Menu_LCD(0); } if ( (Step==14) && (cx < 'H') ) { cx=cx+1; sprintf(Ram_Menus10,"NRGind* %c",cx); Rafraichit_Ligne_Menu_LCD(0); } LCD_Chr_At(3,12,' '); LCD_Chr_At(4,12,' '); __delay_ms(200); LCD_Chr_At(4,12,'>'); __delay_ms(200); Etats_BP=0; Restart_Timeout(); } if (Etats_BP==SW3 && Duree_Appui<1000) // SW3 decremente { if ( (Step==12) && (Fm1 > Min_INT_cor) ) { Fm1 =Fm1 - 0.500; sprintf(Ram_Menus10,"INTcor* %3.1f",Fm1); Rafraichit_Ligne_Menu_LCD(1); } if ( (Step==13) && ( Fm2> Min_NRG_cor) ) { Fm2= Fm2 - 0.50; sprintf(Ram_Menus10,"NRGcor* %3.1f",Fm2); Rafraichit_Ligne_Menu_LCD(0); } if ( (Step==14) && (cx > 'A') ) { cx=cx-1; sprintf(Ram_Menus10,"NRGind* %c",cx); Rafraichit_Ligne_Menu_LCD(0); } LCD_Chr_At(3,12,' '); LCD_Chr_At(4,12,' '); __delay_ms(200); LCD_Chr_At(4,12,'>'); __delay_ms(200); Etats_BP=0; Restart_Timeout(); } // STockage en EEPROM if ( Etats_BP==SW4 && Duree_Appui > 1000 && Step>10 ) //SW4 { Step=SPas+10; CPrint("Valid. modif \r\n") ; Step=Step+10; Etats_BP=0; Restart_Timeout(); if (Step==22) { INT_cor=Fm1; sprintf(Ram_Menus10,"INT_cor =>%3.1f en Eeprom Travail ..@0%04X \r\n",INT_cor,Org_Sauve_Param_Travail+ 12) ; Sauve_Float_To_Eeprom(Org_Sauve_Param_Travail+ 12,INT_cor); Print(Ram_Menus10); } if (Step==23) { NRG_cor=Fm2; sprintf(Ram_Menus10,"NRG_cor =>%3.1f en Eeprom Travail +16 .. @0%04X\r\n",NRG_cor,Org_Sauve_Param_Travail+ 16) ; Sauve_Float_To_Eeprom(Org_Sauve_Param_Travail+ 16,NRG_cor); Print(Ram_Menus10); } if (Step==24) { NRG_ind=cx; sprintf(Ram_Menus10,"NRG_ind =>%c en Eeprom Travail +56 .. @0%04X\r\n",NRG_ind,Org_Sauve_Param_Travail+ 56) ; Print(Ram_Menus10); DATAEE_WriteByte(Org_Sauve_Param_Travail+ 56,cx); } LCD_Write_CText_At(SPas,8," --> EEPROM "); __delay_xSec(3); Restart_Timeout(); Etats_BP=0; } if (Step>20) { Etats_BP=0; Restart_Timeout(); goto Debut_2; } Test_Sortie_via_SW0(); if ((SPas>1) && (Step>0) && (Step<10)) Clignote_Selection(MPas); else __delay_xSec(1); } while( ( TMR0IF == 0) && (Step>1) ); } // if choix >10 MPas=2; Sortie_Menu10(); } //----------------------------------------------------- void MENU10_3_LIMITES_CHD(void) { //rev 16-04-2024 // float Fm1,Fm2,Fm2defined as global variables // unsigned char SPas; // <--- cause de grosse galere par cette declaration LOCALE //unsigned char dumm; int dumm; unsigned char Step; Etats_BP=0; Restart_Timeout(); Debut_3: // Etats_BP=0; // Restart_Timeout(); MPas=3; SPas=2; Step=1; Etats_BP=0; // affectations provisoires avec valeurs en cours Fm1= CHD_min; Fm2 = CHD_max; //Fm3= EXT_min; // valeurs EXCLUSIVEMENT negatives ! dumm=(int) abs(EXT_min); CPrint("\r\n MENU10.3 Limites CHD\r\n"); LCD_Cmd(LCD_CLEAR);__delay_ms(100); sprintf(Ram_Menus10,"103Limites exit S0L"); Print(Ram_Menus10);CRLF1(); LCD_Write_Text_At(1,1,Ram_Menus10); sprintf(Ram_Menus10,"CHDmin>%2.1f Sel S1 ",Fm1); Print(Ram_Menus10);CRLF1(); *(Ram_Menus10+9)=7; LCD_Write_Text_At(2,1,Ram_Menus10); sprintf(Ram_Menus10,"CHDmax %2.1f +- S2/S3",Fm2); Print(Ram_Menus10);CRLF1(); *(Ram_Menus10+9)=7; LCD_Write_Text_At(3,1,Ram_Menus10); sprintf(Ram_Menus10,"EXTmin -%2d Save S4L",dumm); Print(Ram_Menus10);CRLF1(); *(Ram_Menus10+10)=7; LCD_Write_Text_At(4,1,Ram_Menus10); LCD_Chr_At(2,7,'>'); LCD_Chr_At(2,12,'>'); // __delay_xSec(2); Etats_BP=0; Restart_Timeout(); // boucle #1 do { if ( (Etats_BP==SW0) && (Duree_Appui<1000) ) { SPas=0; Step=0; Ram_Menus10[0]=0; } if ( (Etats_BP==SW1) && (Duree_Appui<1000) ) { SPas++; if(SPas>4) SPas=2; switch(SPas) { case 2: LCD_Chr_At(2,7,'>'); LCD_Chr_At(3,7,' ' ); LCD_Chr_At(4,7,' ' ); break; case 3: LCD_Chr_At(2,7,' '); LCD_Chr_At(3,7,'>' ); LCD_Chr_At(4,7,' ' ); break; case 4: LCD_Chr_At(2,7,' '); LCD_Chr_At(3,7,' ' ); LCD_Chr_At(4,7,'>' ); break; default: break; } Etats_BP=0; Restart_Timeout(); } if( (Etats_BP==SW1) && (Duree_Appui>1000) ) //si SW1L { Etats_BP=0; Restart_Timeout(); if (SPas>1) Step=SPas+10; } if(SPas>1) Clignote_Selection(3); else __delay_xSec(1); } while( ( Step>0) &&( Step <10) && (TMR0IF==0) ) ; if(TMR0IF==1) SPas=0; if(SPas>0) { sprintf(Ram_Menus10,"\r\n Step =%d \r\n",Step); Print(Ram_Menus10); LCD_Chr_At(SPas,7,'*'); __delay_ms(200); Etats_BP=0; Restart_Timeout(); do { if ( Etats_BP==SW2 && Duree_Appui<1000) // SW2 incremente { if ( (Step==12) && (Fm1 < 30.0 ) ) { Fm1= Fm1 + 5.00; sprintf(Ram_Menus10,"CHDmin %2.1f",Fm1); Rafraichit_Ligne_Menu_LCD(1); } if ( (Step==13) && ( Fm2 < 85.0) ) { Fm2 =Fm2 + 5.00; sprintf(Ram_Menus10,"CHDmax %2.1f",Fm2); Rafraichit_Ligne_Menu_LCD(1); } if ( (Step==14) && (dumm < 20) ) { dumm=dumm+5; // rev 19/04/2024 sprintf(Ram_Menus10,"EXTmin*-%2d.",dumm); if(dumm==0) *(Ram_Menus10+7)=' '; Rafraichit_Ligne_Menu_LCD(2); } Etats_BP=0; Restart_Timeout(); } if (Etats_BP==SW3 && Duree_Appui<1000) // SW3 decremente { if ( (Step==12) && (Fm1>15.0) ) { Fm1 =Fm1 -5.00; sprintf(Ram_Menus10,"CHDmin %2.1f",Fm1); Rafraichit_Ligne_Menu_LCD(1); } if ( (Step==13) && ( Fm2> 30.0) ) { Fm2= Fm2 -5.000; sprintf(Ram_Menus10,"CHDmax %2.1f",Fm2); Rafraichit_Ligne_Menu_LCD(1); } if ( (Step==14) && (dumm > 4) ) { dumm=dumm-5; sprintf(Ram_Menus10,"EXTmin*-%2d.",dumm); if(dumm==0) *(Ram_Menus10+7)=' '; Rafraichit_Ligne_Menu_LCD(2); } Etats_BP=0; Restart_Timeout(); } // etape validation par SW1L ..supprimée 7/04/2024 // STockage en EEPROM if ( ( Etats_BP==SW4) && (Duree_Appui > 1000) && (Step>10 ) ) //SW4L { Restart_Timeout(); Etats_BP=0; Step=Step+10; if (Step==22) { CHD_min=Fm1; sprintf(Ram_Menus10,"CHD_min =>%3.1f en Eeprom Travail+4 ..@0%04X \r\n",CHD_min,Org_Sauve_Param_Travail+ 0) ; Sauve_Float_To_Eeprom(Org_Sauve_Param_Travail+ 0,CHD_min); Print(Ram_Menus10); } if (Step==23) { CHD_max=Fm2; sprintf(Ram_Menus10,"CHD_max =>%3.1f en Eeprom Travail +0 .. @0%04X\r\n",CHD_max,Org_Sauve_Param_Travail+ 4) ; Sauve_Float_To_Eeprom(Org_Sauve_Param_Travail+ 4,CHD_max); Print(Ram_Menus10); } if (Step==24) { // EXT_min=Fm3; EXT_min= - (float)dumm; sprintf(Ram_Menus10,"EXT_min =>%3.1f en Eeprom Travail +8 .. @0%04X\r\n",EXT_min ,Org_Sauve_Param_Travail+ 8) ; Print(Ram_Menus10); Sauve_Float_To_Eeprom(Org_Sauve_Param_Travail+ 8,EXT_min); } Etats_BP=0; Restart_Timeout(); LCD_Write_CText_At(SPas,8," --> EEPROM "); __delay_xSec(3); LCD_Write_CText_At(SPas,8," "); Etats_BP=0; Restart_Timeout(); } if (Step>20) { Etats_BP=0; Restart_Timeout(); CPrint("goto Debut_3\r\n"); goto Debut_3; } Test_Sortie_via_SW0(); if(SPas>10) { LCD_Chr_At(3,12,' '); LCD_Chr_At(4,12,' '); __delay_ms(200); LCD_Chr_At(3,12,' '); LCD_Chr_At(4,12,'>'); __delay_ms(200); } if ((SPas>1) && (Step>0) && (Step<20)) Clignote_Selection(3); else __delay_xSec(1); } while( ( TMR0IF == 0) && (Step>1) ); } //if Pas>0 MPas=3; Sortie_Menu10(); } //----------------------------------------------------------------- void MENU10_4_HYSTERESIS(void) { //rev 13-04-2024 // float Fm1,Fm2,Fm2defined as global variables unsigned char Step; Debut_4: MPas=4; SPas=2; Step=1; Etats_BP=0; Restart_Timeout(); // affectations provisoires avec valeurs en cours Fm1= HYS_int; Fm2= HYS_ext; Fm3= HYS_eau; CPrint("\r\n MENU10.4 HYSTERESIS\r\n"); LCD_Cmd(LCD_CLEAR);__delay_ms(100); sprintf(Ram_Menus10,"104Hysteres exit S0L"); Print(Ram_Menus10);CRLF1(); LCD_Write_Text_At(1,1,Ram_Menus10); sprintf(Ram_Menus10,"INThys> %3.1f Sel S1",Fm1); Print(Ram_Menus10);CRLF1(); *(Ram_Menus10+9)=7; LCD_Write_Text_At(2,1,Ram_Menus10); sprintf(Ram_Menus10,"EXThys %3.1f +- S2/S3",Fm2); Print(Ram_Menus10);CRLF1(); *(Ram_Menus10+9)=7; LCD_Write_Text_At(3,1,Ram_Menus10); sprintf(Ram_Menus10,"EAUhys %3.1f Save S4L",Fm3); Print(Ram_Menus10);CRLF1(); *(Ram_Menus10+9)=7; LCD_Write_Text_At(4,1,Ram_Menus10); LCD_Chr_At(2,7,'>'); LCD_Chr_At(2,12,'>'); __delay_xSec(1); Etats_BP=0; Restart_Timeout(); // boucle #1 do { if (Etats_BP==SW0) { SPas=0; Step=0; } if ( (Etats_BP==SW1) && (Duree_Appui<1000) ) { SPas++; if(SPas>4) SPas=2; switch(SPas) { case 2: LCD_Chr_At(2,7,'>'); LCD_Chr_At(3,7,' ' ); LCD_Chr_At(4,7,' ' ); break; case 3: LCD_Chr_At(2,7,' '); LCD_Chr_At(3,7,'>' ); LCD_Chr_At(4,7,' ' ); break; case 4: LCD_Chr_At(2,7,' '); LCD_Chr_At(3,7,' ' ); LCD_Chr_At(4,7,'>' ); break; default: break; } Etats_BP=0; Restart_Timeout(); } if( (Etats_BP==SW1) && (Duree_Appui>1000) ) //si SW1L { Etats_BP=0; Restart_Timeout(); if (SPas>1) Step=SPas+10; } if(SPas>1) Clignote_Selection(4); } while( ( Step>0) &&( Step <10) && (TMR0IF==0) ) ; if(TMR0IF==1) SPas=0; if(SPas>0) { sprintf(Ram_Menus10,"\r\n Step =%d \r\n",Step); Print(Ram_Menus10); LCD_Chr_At(SPas,7,'*'); __delay_ms(200); Etats_BP=0; Restart_Timeout(); do { if ( Etats_BP==SW2 && Duree_Appui<1000) // SW2 incremente { if ( (Step==12) && (Fm1 < Max_HYS_int ) ) { Fm1 =Fm1 + 0.50; sprintf(Ram_Menus10,"INTHys* %3.1f",Fm1); Rafraichit_Ligne_Menu_LCD(1); } if ( (Step==13) && ( Fm2< Max_HYS_ext)) { Fm2= Fm2 + 0.50; sprintf(Ram_Menus10,"EXThys* %3.1f",Fm2); Rafraichit_Ligne_Menu_LCD(1); } if ( (Step==14) && (Fm3< Max_HYS_eau) ) { Fm3=Fm3+ 1.0; sprintf(Ram_Menus10,"EAUHys* %3.1f",Fm3); Rafraichit_Ligne_Menu_LCD(1); } LCD_Chr_At(3,12,' '); __delay_ms(200); LCD_Chr_At(3,12,' '); LCD_Chr_At(4,12,'>'); Etats_BP=0; Restart_Timeout(); } if (Etats_BP==SW3 && Duree_Appui<1000) // SW3 decremente { if ( (Step==12) && (Fm1> Min_HYS_int) ) { Fm1 =Fm1 -0.50; sprintf(Ram_Menus10,"INTHys* %3.1f",Fm1); Rafraichit_Ligne_Menu_LCD(1); } if ( (Step==13) && ( Fm2> Min_HYS_ext) ) { Fm2= Fm2 -0.50; sprintf(Ram_Menus10,"EXTHys* %3.1f",Fm2); Rafraichit_Ligne_Menu_LCD(1); } if ( (Step==14) && (Fm3> Min_HYS_eau) ) { Fm3=Fm3- 1.0; sprintf(Ram_Menus10,"EAUHys* %3.1f",Fm3); Rafraichit_Ligne_Menu_LCD(1); } LCD_Chr_At(3,12,' '); __delay_ms(200); LCD_Chr_At(3,12,' '); LCD_Chr_At(4,12,'>'); Etats_BP=0; Restart_Timeout(); } // etape validation par SW1L ..supprimée 7/04/2024 // STockage en EEPROM if ( ( Etats_BP==SW4) && (Duree_Appui > 1000) && (Step>10 ) ) //SW4L { Restart_Timeout(); Etats_BP=0; Step=Step+10; if (Step==22) { HYS_int=Fm1; sprintf(Ram_Menus10,"INThys =>%3.1f en Eeprom Travail+32 ..@0%04X \r\n",HYS_int,Org_Sauve_Param_Travail+ 32) ; Sauve_Float_To_Eeprom(Org_Sauve_Param_Travail+ 32,HYS_int); Print(Ram_Menus10); } if (Step==23) { HYS_ext=Fm2; sprintf(Ram_Menus10,"EXThys =>%3.1f en Eeprom Travail +36 .. @0%04X\r\n",HYS_ext,Org_Sauve_Param_Travail+36) ; Sauve_Float_To_Eeprom(Org_Sauve_Param_Travail+ 36,HYS_ext); Print(Ram_Menus10); } if (Step==24) { HYS_eau=Fm3; sprintf(Ram_Menus10,"EAUHys =>%3.1f en Eeprom Travail +40 .. @0%04X\r\n",HYS_eau ,Org_Sauve_Param_Travail+40) ; Print(Ram_Menus10); Sauve_Float_To_Eeprom(Org_Sauve_Param_Travail+ 40,HYS_eau); } Etats_BP=0; Restart_Timeout(); LCD_Write_CText_At(SPas,8," --> EEPROM "); __delay_xSec(3); LCD_Write_CText_At(SPas,8," "); Etats_BP=0; Restart_Timeout(); } if (Step>20) { Etats_BP=0; CPrint("goto Debut_4\r\n"); goto Debut_4; } Test_Sortie_via_SW0(); if ((SPas>1) && (Step>0) && (Step<10)) Clignote_Selection(4); else __delay_xSec(1); } while( ( TMR0IF == 0) && (Step>1) ); } //if Pas>0 MPas=4; Sortie_Menu10(); }