void eins(void){ //Drehmomentebene verz(10); unsigned char ebene2 = 0; unsigned char merkerzeile = 1; unsigned char haltevar = 0; int reihe[3]; //wertearray int faktor[4]; //wertearray char areihe[1]; //ausgabestring char afaktor[4]; //ausgabestring char amoment[4]; //ausgabestring reihe[0] = 1; reihe[1] = 2; reihe[2] = 5; faktor[0] = 1; faktor[1] = 10; faktor[2] = 100; faktor[3] = 1000; LCD_Clr(); verz(8); LCD_WritePosString(0, 0, "Moment_einst.", 1); //"Grundbild" schreiben LCD_WritePosString(1, 1, "Reihe:", 1); itoa(reihe[wahlreihe],areihe, 10); LCD_WritePosString(1, 13, areihe, 1); LCD_WritePosString(2, 1, "Faktor:", 1); itoa(faktor[wahlfaktor], afaktor, 10); LCD_WritePosString(2, 13, afaktor, 1); LCD_WritePosString(3, 1, "Moment:", 1); moment = reihe[wahlreihe]*faktor[wahlfaktor]; itoa(moment, amoment, 10); LCD_WritePosString(3, 13, amoment, 1); LCD_WritePosString(3, 18, "Nm",1); LCD_WritePosString(merkerzeile, 19, "#", 1); while ( ebene2 != 1 ){ if (PIND &(1 << PD2)){ //Menue- Taste gedrückt -> zurück ins Hauptmenü ebene2 = 1; verz(6); LCD_Clr(); } if (PIND &(1 << PD3)){ //hoch -> Merker wandert LCD_ClrLineXY(merkerzeile, 18, 19); merkerzeile += 1; if ( merkerzeile == 3) { merkerzeile = 1; } LCD_WritePosString(merkerzeile, 19, "#", 1); verz(6); } if (PIND &(1 << PD4)){ //runter -> Merker wandert LCD_ClrLineXY(merkerzeile, 18, 19); if ( merkerzeile == 1) { merkerzeile = 3; } merkerzeile -= 1; LCD_WritePosString(merkerzeile, 19, "#", 1); verz(6); } if (PIND &(1 << PD5)){ // OK-Button -> Wert Markieren verz(8); if (merkerzeile == 1) { // Reihe -> Wert ändern LCD_ClrLineXY(merkerzeile, 18, 19); LCD_WritePosString(merkerzeile, 19, "*", 1); verz(8); while ( haltevar !=1 ){ if (PIND &(1 << PD3)){ //hoch -> ++ if (wahlreihe == 2){ wahlreihe = 0; } else{ wahlreihe ++; } itoa(reihe[wahlreihe],areihe, 10); LCD_WritePosString(1, 13, areihe, 1); LCD_WritePosString(merkerzeile, 19, "*", 1); moment = reihe[wahlreihe]*faktor[wahlfaktor]; itoa(moment, amoment, 10); LCD_WritePosString(3, 13, amoment, 1); LCD_WritePosString(3, 18, "Nm",1); verz(6); } if (PIND &(1 << PD4)){ //runter -> -- if (wahlreihe == 0){ wahlreihe = 2; } else{ wahlreihe --; } itoa(reihe[wahlreihe],areihe, 10); LCD_WritePosString(1, 13, areihe, 1); LCD_WritePosString(merkerzeile, 19, "*", 1); moment = reihe[wahlreihe]*faktor[wahlfaktor]; itoa(moment, amoment, 10); LCD_WritePosString(3, 13, amoment, 1); LCD_WritePosString(3, 18, "Nm",1); verz(6); } if (PIND &(1 << PD5)){ //OK-Button -> bestätigen, Auswahl von faktor/reihe möglich haltevar = 1; verz(6); LCD_ClrLineXY(merkerzeile, 18, 19); LCD_WritePosString(merkerzeile, 19, "#", 1); } } haltevar = 0; LCD_ClrLineXY(merkerzeile, 18, 19); LCD_WritePosString(merkerzeile, 19, "#", 1); } if (merkerzeile == 2) { //Faktor LCD_ClrLineXY(merkerzeile, 18, 19); LCD_WritePosString(merkerzeile, 19, "*", 1); verz(6); while ( haltevar !=1 ){ if (PIND &(1 << PD3)){ //hoch if (wahlfaktor == 3){ wahlfaktor = 0; } else{ wahlfaktor +=1; } itoa(faktor[wahlfaktor],afaktor, 10); LCD_WritePosString(2, 13, afaktor, 1); LCD_WritePosString(merkerzeile, 19, "*", 1); moment = reihe[wahlreihe]*faktor[wahlfaktor]; itoa(moment, amoment, 10); LCD_WritePosString(3, 13, amoment, 1); LCD_WritePosString(3, 18, "Nm",1); verz(6); } if (PIND &(1 << PD4)){ //runter if (wahlfaktor == 0){ wahlfaktor = 3; } else{ wahlfaktor -=1; } itoa(faktor[wahlfaktor],afaktor, 10); LCD_WritePosString(2, 13, afaktor, 1); LCD_WritePosString(merkerzeile, 19, "*", 1); moment = reihe[wahlreihe]*faktor[wahlfaktor]; itoa(moment, amoment, 10); LCD_WritePosString(3, 13, amoment, 1); LCD_WritePosString(3, 18, "Nm",1); verz(6); } if (PIND &(1 << PD5)){ //OK-Button haltevar = 1; verz(6); LCD_ClrLineXY(merkerzeile, 18, 19); LCD_WritePosString(merkerzeile, 19, "#", 1); } } haltevar = 0; LCD_ClrLineXY(merkerzeile, 18, 19); LCD_WritePosString(merkerzeile, 19, "#", 1); } } } }