Neway Inserito: 15 luglio 2007 Segnala Inserito: 15 luglio 2007 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 proGrazie milleAdriano
Livio Orsini Inserita: 15 luglio 2007 Segnala Inserita: 15 luglio 2007 La risposta giusta è o usi un compilatore "C" (microC o CCS), oppure usi l'assembler con libreria in float (se è necessario)
accacca Inserita: 15 luglio 2007 Segnala Inserita: 15 luglio 2007 (modificato) 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: 15 luglio 2007 da accacca
ifachsoftware Inserita: 20 luglio 2007 Segnala Inserita: 20 luglio 2007 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 memoriaCiao
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora