Newsgroup: it.hobby.elettronica.digitale
Titolo: ST6 conversioni...

Salute a tutti e scusate lo spam.
Con l'St6 ho fatto diverse cose ma non ho mai programmato una conversione da
0 -255 a 0-99 e quando hai poco tempo.....ti serve.
Praticamente ho bisogno di convertire l'ingresso ADC in un numero
percentuale pronto da spedire in un display LCD senza usare le WindowROM...
Qualcuno ha una soluzione sottomano od un link in cui guardare?
Non voglio comunque che nessuno si disturbi appositamente....
Grazie anticipatamente....

ciao
le uniche soluzioni sono:
-usare delle operazioni matematiche (+,*,/,-)ed
accettare l'errore che ne consegue.
-limitare il segnale di input in modo da avere
una conversione diretta (19,5 mV*bit o 39 mV*bit)
con un partitore resistivo


Grazie anticipatamente....
Mi sa che l'unico modo e' fare una divisione per 2,55 ...
Puoi trovare i sorgenti per farlo sulla mia Home-Page.
Ciao, Massimo - IW1FDX
E-Mail    
max...@libero.it
Visita la pagina dedicata ai microcontrollori ST62
all'indirizzo 
http://digilander.iol.it/max4000

Inizia a sottrarre 100 dal numero; poi sottrai 10 fin che puoi e conti
quanti 100 e 10 sottrai: ottieni centinaia e decine. Il numero che ti rimane
sono le unità.

 wrote in message
38D09A64...@brasimone.enea.it...


 wrote in message 8asie3$276$1...@serv1.iunet.it...


rimane sono le unità.
;-)
Sì, ma io ho bisogno di avere una conversione a percentuale....praticamente
divido per 2,55 il valore del convertitore.......
Finora la migliore che ho visto é utilizzare una routine di prodotto a 16
bit :
Ingresso AD * 100
seguito da una divisione (sempre a 16 bit con risultato in un Byte) per 255.
Mi va via "n" spazio...e devo farci parecchio d'altro...
Ma forse mi conviene utilizzare le Rom Windows dividendo preventivamente per
due....
sparo i valori su due pagine (128 Byte, di solito lo faccio per i
comportamenti non lineari) e poi applico al risultato le decine ,unità
ecc.....
Altre idee???
Grazie comunque
Saluti
P.S. ho eliminato lo spam, risposte solo su IHElettronica.Digitale e scusate
ancora!

Ciao, Massimo - IW1FDX
Ti ringrazio e complimenti per il sito......veramente chiaro...
In effetti é proprio quello che devo fare ed ho esposto le mie possibilità
in catena alle risposte di Flavio F. e Lorenzo Castricini....
Grazie e saluti

Ringrazio tutti dell'aiuto e quindi "posto" il metodo che ho trovato.
Mi pare sia il più rapido ( e su carta controllando bit x bit funziona).
Sono partito dal presupposto descritto %=INT(X / 2,55) ossia %= (X*100) /255
Si può avere usando un prodotto di due byte con risultato in 16 bit......
Procedura:
Prima si deve estrapolare il caso X=255 e definirlo come "100" e poi:
Y = X*100 dove Y é diviso in MSB ed LSB ......
Ma se si considera che il divisore 255 é il massimo valore rappresentabile
in un Byte,
si tiene l'MSB e si "getta" l'altro.
Il valore in MSB é pari alla percentuale data dalla funzione del
presupposto.
Il tutto in una quindicina di righe di programma..
Saluti ed ancora grazie.

Saluti
Per moltiplicare per 100 c'e' un metodo piu' veloce e corto che una
routine ad hoc di moltiplicazione 16 Bit x 16 Bit (e che dovrebbe
anche venire piu' corto della tabella in ROM).
Siccome :
100 = 01100100 in binario
Allora :
a * 100 = a * 64 + a * 32 + a * 4
a * 100 = a << 6 + a << 5 + a << 2
(dove << sta per Shift a sinistra)
che con poche righe si fa senza problemi (qualche SLA A e qualche
ADD).
