07-04-2020, 12:23
No tak, trochę się w obliczaniu pomyliłem. Ale aż 90 bajtów trochę szkoda. Wystarczy 6 brakujących bajtów dodac., A nie jeden, jak sugerowałem.
//obsługa klawisza zmiany kroku
if(step_button_pressed == true){ //jeśli klawisz jest wcisnięty
switch(step_value){ //za pomocą instrukcji swich zmieniamy krok
case 1000000: // krok 1mHz
step_value = 100000;
break;
case 100000: //jeśli krok jest 100kHz ustaw 10kHz
step_value = 10000;
break;
case 10000: //jeśli krok jest 10kHz ustaw 1kHz
step_value = 1000;
break;
case 1000: //jeśli krok jest 1kHz ustaw 50Hz
step_value = 50;
break;
case 50: //jeśli krok jest 50Hz ustaw 100kHz
step_value = 100000;
break;
}
show_step(); //pokazuję zmianę kroku na lcd
delay(200); //zwłoka po zmianie kroku 200msec
}
//funkcja do wyświetlania aktualnego kroku syntezera za pomocą podkreślenie odpowiedniej cyfry
void show_step(){
myGLCD.clrLine(0,31,95,31); //czyszczę cała linię gdzie wyświetlam podkreślenie
myGLCD.clrLine(0,32,95,32); //czyszczę druga linię tak samo podkreśliniki są grube na dwa piksele
switch(step_value){ //przełącznik reaguje na bieżącą wartość kroku syntezy
case 50:
myGLCD.drawLine(79, 31, 95, 31); //pokreślam 100Hz
myGLCD.drawLine(79, 32, 95, 32); //pokreślam 100Hz
break;
case 1000:
myGLCD.drawLine(63, 31, 71, 31); //pokreślam 1kHz
myGLCD.drawLine(63, 32, 71, 32); //pokreślam 1kHz
break;
case 10000:
myGLCD.drawLine(51, 31, 59, 31); //pokreślam 10kHz
myGLCD.drawLine(51, 32, 59, 32); //pokreślam 10kHz
break;
case 100000:
myGLCD.drawLine(39, 31, 47, 31); //pokreślam 100kHz
myGLCD.drawLine(39, 32, 47, 32); //pokreślam 100kHz
break;
case 1000000:
myGLCD.drawLine(27, 31, 35, 31); //pokreślam 1mHz
myGLCD.drawLine(27, 32, 35, 32); //pokreślam 1mHz
break;
}
myGLCD.update(); //jak już ustaliliśmy co, rysujemy to wysyłamy to do LCD
}