Gast
#97753
Hallo, bin gerade dabei, mir einen Drehzahlmesser für mein Mopped zu stricken. Der Radumfang soll dabei eingestellt werden können und das Ganze wird dann am LCD-Display angezeigt. Beim Einstellen liegt mein Problem: Mit einer Taste soll der Cursor auf dem Display weitergestellt werden, mit dem anderen Taster diese Stelle um 1 erhöht werden. So, meine entsprechende Routine sieht so aus: char wert[5]; sprintf(wert, "%hu", umfang); if (wert[position - 1] < '9') wert[position - 1] = wert[position - 1] + 1; else wert[position - 1] = '0'; umfang = atoi(wert); set_pos(0x48); sprintf(wert, "%hu", umfang); show_text(wert); set_pos setzt den Cursor auf eine Stelle (das Weiterrücken wird noch woanders gemacht); position ist die Stelle des Cursors die durch drücken des anderen Tasters erhöht wird. Das Problem liegt nun darin, dass, wenn ich die erste Stelle auf null stelle, der beispielsweise 4-stellige Umfangswert 3-stellig wird. Wird wohl an der atoi() Funktion liegen da dann eine führende 0 ignoriert wird. Vielleicht hat ja hier jemand eine einfache Lösung, ansonsten müsste ich ja wieder etliche Fallunterscheidungen machen.... MfG Thomas