Dein Wurm liegt wohl hier
itoa (result, buffer, 16);
lcd_puts(buffer);
Es sollte wohl heißen:
itoa (result, buffer, 10);
lcd_puts(buffer);
Denn die Ausgabe soll doch im 10er System sein und nicht im 16er.