Vai al contenuto
PLC Forum


Maneggiare grossi numeri con PIC - Come eseguire calcoli complessi?


Neway

Messaggi consigliati

Salve a tutti, sono un novellino dei PIC e della programmazione in generale, e sto avendo problemi nel far svolgere ad un pic 16F876A dei calcoli con grossi numeri. Il progetto è al momento un circuitino che legge l'uscita di un accelerometro, la converte con l'ADC e visualizza l'accelerazione in G su uno schermo LCD. La cosa funziona alla grande se voglio visualizzare il valore della variabile WORD in cui è contenuto il valore letto, ma se voglio svolgere il calcoletto per trovare l'accelerazione in G, che coinvolge numeri grossi, allora il compilatore mi da giustamente l'overflow.

La mia domanda è allora: come gestisco questo tipo di calcoli?

P.S. Programmo in pic basic pro

Grazie mille

Adriano

Link al commento
Condividi su altri siti


La risposta giusta è o usi un compilatore "C" (microC o CCS), oppure usi l'assembler con libreria in float (se è necessario)

Link al commento
Condividi su altri siti

Senza dimenticare che chi fa tutto il lavoro è un PIC a 8bit che come tutti gli 8bit non si può definire una scheggia nelle operazioni tra numeri memorizzati in multibyte e nell'aritmetica tra numeir reali.

Un'ottima alternativa potrebbe essere considerare solo numeri interi a 16bit e lavorare con aritmetica intera.

In questo caso devi stare attento ai decimali con cui rappresentii numeri coinvolti nei calcoli e devi scegliere l'ordine migliore delle operazioni in modo da limitare le approsimazioni.

Magari se inserisci la formula possono arrivare suggerimetni più dettagliati

Modificato: da accacca
Link al commento
Condividi su altri siti

ifachsoftware

Se devi gestire molti calcoli in virgola mobile ti consiglio i DSP sempre della Microchip che sono a 16 Bit , ma con la potenza di calcolo dei 32 Bit.

Al riguardo dei numeri grandi da gestire anche un micro ad 8 bit li puo' fare ... e' solo questione di tempo e di memoria

Ciao smile.gif

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...