mattia281193, a prescindere dal processore usato, per fare del buon debug in C io procedo sempre sostituendo richiami a funzioni con istruzioni dal risultato certo.
Nel tuo caso io proverei a mettere
prima di
CODICE
Lcd_Out(1,6,volt2);
Così se il display ti mostra il valore corretto (123) allora il problema lo hai nella funzione di conversione IntToStr() o nel valore che gli passi.
In questo caso la prima cosa da fare è mettere un controllo sui limiti dei valori passati, del tipo:
CODICE
if(volt < -32765) volt = -32765;
if(volt > 32765) volt = 32765;
(i limiti sono per un valore signed int)
Un ultimo appunto è sull'uso delle variabili intere con operazioni in virgola mobile dove è sempre bene anteporre la definizione del tipo di variabile da elaborare, e indicare le costanti come float così che il compilatore non ti tronchi i risultati:
CODICE
volt = (float)( ((float)dato * 100.0) / 634.0 );
in questo modo prima di assegnare il risultato come
int a
volt l'operazione viene eseguita come valori
float perdendo nella conversione implicita (da float a int) solo la parte eccedente (i decimali)