add autotemp support to the lcd
This commit is contained in:
		| @@ -660,7 +660,12 @@ void MainMenu::showTune() | ||||
| //    | ||||
|  | ||||
| enum { | ||||
|   ItemCT_exit, ItemCT_nozzle, ItemCT_fan, | ||||
|   ItemCT_exit,ItemCT_nozzle, | ||||
| #ifdef AUTOTEMP | ||||
|   ItemCT_autotempactive, | ||||
|   ItemCT_autotempmin,ItemCT_autotempmax,ItemCT_autotempfact, | ||||
| #endif | ||||
|   ItemCT_fan, | ||||
|   ItemCT_PID_P,ItemCT_PID_I,ItemCT_PID_D,ItemCT_PID_C | ||||
| }; | ||||
|  | ||||
| @@ -708,7 +713,128 @@ void MainMenu::showControlTemp() | ||||
|           } | ||||
|         } | ||||
|       }break; | ||||
|        | ||||
|       #ifdef AUTOTEMP | ||||
|       case ItemCT_autotempmin: | ||||
|       { | ||||
|         if(force_lcd_update) | ||||
|         { | ||||
|           lcd.setCursor(0,line);lcdprintPGM(" \002 Min:"); | ||||
|           lcd.setCursor(13,line);lcd.print(ftostr3(autotemp_max)); | ||||
|         } | ||||
|          | ||||
|         if((activeline==line) ) | ||||
|         { | ||||
|           if(CLICKED) | ||||
|           { | ||||
|             linechanging=!linechanging; | ||||
|             if(linechanging) | ||||
|             { | ||||
|                encoderpos=intround(autotemp_max); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|               autotemp_max=encoderpos; | ||||
|               encoderpos=activeline*lcdslow; | ||||
|               beepshort(); | ||||
|             } | ||||
|             BLOCK; | ||||
|           } | ||||
|           if(linechanging) | ||||
|           { | ||||
|             if(encoderpos<0) encoderpos=0; | ||||
|             if(encoderpos>260) encoderpos=260; | ||||
|             lcd.setCursor(13,line);lcd.print(itostr3(encoderpos)); | ||||
|           } | ||||
|         } | ||||
|       }break;   | ||||
|       case ItemCT_autotempmax: | ||||
|       { | ||||
|         if(force_lcd_update) | ||||
|         { | ||||
|           lcd.setCursor(0,line);lcdprintPGM(" \002 Max:"); | ||||
|           lcd.setCursor(13,line);lcd.print(ftostr3(autotemp_max)); | ||||
|         } | ||||
|          | ||||
|         if((activeline==line) ) | ||||
|         { | ||||
|           if(CLICKED) | ||||
|           { | ||||
|             linechanging=!linechanging; | ||||
|             if(linechanging) | ||||
|             { | ||||
|                encoderpos=intround(autotemp_max); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|               autotemp_max=encoderpos; | ||||
|               encoderpos=activeline*lcdslow; | ||||
|               beepshort(); | ||||
|             } | ||||
|             BLOCK; | ||||
|           } | ||||
|           if(linechanging) | ||||
|           { | ||||
|             if(encoderpos<0) encoderpos=0; | ||||
|             if(encoderpos>260) encoderpos=260; | ||||
|             lcd.setCursor(13,line);lcd.print(itostr3(encoderpos)); | ||||
|           } | ||||
|         } | ||||
|       }break;   | ||||
|       case ItemCT_autotempfact: | ||||
|       { | ||||
|         if(force_lcd_update) | ||||
|         { | ||||
|           lcd.setCursor(0,line);lcdprintPGM(" \002 Fact:"); | ||||
|           lcd.setCursor(13,line);lcd.print(ftostr32(autotemp_factor)); | ||||
|         } | ||||
|          | ||||
|         if((activeline==line) ) | ||||
|         { | ||||
|           if(CLICKED) | ||||
|           { | ||||
|             linechanging=!linechanging; | ||||
|             if(linechanging) | ||||
|             { | ||||
|                encoderpos=intround(autotemp_factor*100); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|               autotemp_max=encoderpos; | ||||
|               encoderpos=activeline*lcdslow; | ||||
|               beepshort(); | ||||
|             } | ||||
|             BLOCK; | ||||
|           } | ||||
|           if(linechanging) | ||||
|           { | ||||
|             if(encoderpos<0) encoderpos=0; | ||||
|             if(encoderpos>99) encoderpos=99; | ||||
|             lcd.setCursor(13,line);lcd.print(ftostr32(encoderpos/100.)); | ||||
|           } | ||||
|         } | ||||
|       }break; | ||||
|       case ItemCT_autotempactive: | ||||
|       { | ||||
|         if(force_lcd_update) | ||||
|         { | ||||
|           lcd.setCursor(0,line);lcdprintPGM(" Autotemp:"); | ||||
|           lcd.setCursor(13,line); | ||||
| 	  if(autotemp_enabled) | ||||
| 	    lcdprintPGM("On"); | ||||
| 	  else | ||||
| 	    lcdprintPGM("Off"); | ||||
|         } | ||||
|          | ||||
|         if((activeline==line) ) | ||||
|         { | ||||
|           if(CLICKED) | ||||
|           { | ||||
|             autotemp_enabled=!autotemp_enabled; | ||||
|             BLOCK; | ||||
|           } | ||||
|         } | ||||
|       }break;   | ||||
|       #endif //autotemp | ||||
|       case ItemCT_fan: | ||||
|       { | ||||
|         if(force_lcd_update) | ||||
| @@ -1620,6 +1746,19 @@ char *ftostr31(const float &x) | ||||
|   return conv; | ||||
| } | ||||
|  | ||||
| char *ftostr32(const float &x) | ||||
| { | ||||
|   int xx=x*100; | ||||
|   conv[0]=(xx>=0)?'+':'-'; | ||||
|   xx=abs(xx); | ||||
|   conv[1]=(xx/100)%10+'0'; | ||||
|   conv[2]='.'; | ||||
|   conv[3]=(xx/10)%10+'0'; | ||||
|   conv[4]=(xx)%10+'0'; | ||||
|   conv[6]=0; | ||||
|   return conv; | ||||
| } | ||||
|  | ||||
| char *itostr31(const int &xx) | ||||
| { | ||||
|   conv[0]=(xx>=0)?'+':'-'; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user