home | area personale         schemi | tutorial | robotica | pic micro | recensioni         forum | chat irc         faq | contatti         store | Ordina PCB
username
password
cerca

 
FORUM: Pic Micro
Tutto quanto riguarda questi microprocessori... progetti, suggerimenti, aiuti, discussioni...ecc


Pic16F1618346 - NVMREG WRITE TO EEPROM
     
Autore Messaggio opzioni
rcc.roberto



[pagine pubblicate]

postato il:
23.03.2019, alle ore 15:01
Ottavo:
Quindi devo scrivere in italiano correggiuto per poter pubblicare un messaggio?



Ah Ah Ah, mi fai sbellicare dalle risate…

No, è sufficiente che non usi le virgolette.
Ottavo





postato il:
24.03.2019, alle ore 12:29
Sono molto soddisfatto, il circuito funziona egregiamente.
Vorrei però migliorarlo ulteriormente.
All'accensione devo eseguire la procedura di lettura dei dati di calibrazione perché lo strumento possa svolgere delle misure precise.
Così ho pensato che quei valori potrebbero essere salvati come -costanti- in modo tale che all'accensione siano già valorizzate.

Qualche idea o suggerimento in merito?



detesto citazioni, massime e aforismi nella firma
picmicro675




una ogni 10 livelli


postato il:
24.03.2019, alle ore 13:50
Ottavo:
In seguito lo sintetizzerò

Fintanto che il sorgente non è grande ci può stare di metterlo con il suo tag.

Direi che il metodo di pubblicare un sorgente sarebbe di caricarlo da qualche parte e mettere il link. Infatti diverse volte si incappa problemi di manipolazioni Grix dei messaggi, allora anche il codice contiene caratteri non previsti.

Visto quest'ultimo, mi sembra un po troppo manipolato per ottenere il percorso desiderato, uno SWITCH seguito da IF ?



Anno nuovo, forum nuovo.
Mi sa che lascio.
picmicro675




una ogni 10 livelli


postato il:
24.03.2019, alle ore 14:04
Ottavo:
Così ho pensato che quei valori potrebbero essere salvati come -costanti- in modo tale che all'accensione siano già valorizzate.


Direi che basterebbe usare la EEPROM per le calibrature. Magari dopo, vista la potenzialità del micro, potresti scriverli in una zona della flash che modifica la lettura dei valori, dandoli definitivi.
Un programma auto-modificante è un po mostruoso, ma se lo ritieni utile diventa più veloce che leggere dalla eeprom. Sembra che per un dato ci vuole almeno 2 mSec.

Del resto potresti anche provare a delineare una zona libera che verranno deposte le constanti, il programma inizia con una fase di calibrazione e quindi riallinea i puntatori delle nuove assegnazioni. Penso le variabili potrebbero essere disposte in array di costanti.



Anno nuovo, forum nuovo.
Mi sa che lascio.
Ottavo





postato il:
24.03.2019, alle ore 16:34
uno SWITCH seguito da IF ?

Perchè no?
Costituisce una macchina a stati finiti, un grande aiuto in fase di debug e strategia comunemente usata nell'ambito dell'automazione industriale dal quale provengo, un po' stagionata come me, che appartengo ancora al vecchio ordinamento di ingegneria elettronica-informatica.

Si potrebbe certamente far qualcosa di meglio...ma funziona.

Tornando all'idea esposta, sarebbe possibile salvare in flash,
(self-programming) ma ormai tutto funziona e sono tentato di scrivere una piccola routine che parta all'accensione e rilegga la eeprom.

Il firmware è composto complessivamente da oltre 2000 righe e questa volta MikroC mi ha fatto proprio sudare.



detesto citazioni, massime e aforismi nella firma
picmicro675




una ogni 10 livelli


postato il:
24.03.2019, alle ore 16:55
Ottavo:
Perchè no?

Posso rispondere che la pasta si può fare i mille modi.
Si spera che il metodo più diretto sia il meno complicato.
Ottavo:
Costituisce una macchina a stati finiti.
.
Non sono andato a scuola per elettronica, ho fatto da solo in modo empirico. Ho imparato i principi di un FMS.
Ottavo:
Tornando all'idea esposta, sarebbe possibile salvare in flash, (self-programming)

Non so a che condizione vale il gioco. Se di gioco si tratta. Qui siamo in tanti a dilettarsi. Per cui io ritengo che per realizzare un progetto è ammesso anche molte revisioni. io non ne pongo un limite, magari il progetto non viene pronto in breve, ma non mi pongo il problema di avere una data di consegna. Infatti non c'è scadenza.

Del resto, se non sbaglio, dovrebbe trattarsi di preparare una area di memoria dove depositare gli array dei dati. Ci sarà solo una singola chiamata a quello che determina cosa mettere negli array e quindi completare il programma.

Ottavo:
Il firmware è composto complessivamente da oltre 2000 righe e questa volta MikroC mi ha fatto proprio sudare.

Stando alla versione free, allora ti conviene frammezzare qualche ottimizzazione in assembly, dato che le manovre del C allungano il risultato.

Se pensi a qualcosa senza limiti, allora c'è SDCC, se non l' ho già citato. È un po rustico....




Anno nuovo, forum nuovo.
Mi sa che lascio.
Ottavo





postato il:
24.03.2019, alle ore 18:27
Ok grazie, prossimamente proverò a guardare tutti quelli che mi hai citato.

In assembly no, oltre a non essere mai stato bravo, ormai sono troppo arrugginito, e se si va oltre a qualche semplice istruzione mi trovo in forte difficoltà.


Le 2000 righe invece ci stanno tutte. Questo aggeggio deve svolgere molte misure diverse ed eseguire varie conversioni tra l'una e l'altra, anche se effettivamente sono stato un po' largo nello scrivere, ci guadagno in leggibilità.
C'è ancora un buon 70% di ram e un 25% di rom libere e col clock a 32MHz ottengo una risposta più che soddisfacente.





detesto citazioni, massime e aforismi nella firma
agric





postato il:
24.03.2019, alle ore 18:49
Ok quindi ora funziona tutto? Bene!

Scusa la domanda se non è top secret il progetto. Cosa devi misurare e con quale metodo.
Avrei anche io un progetto di misurare dei volumi ma il mio problema è di separare l'aria che trasporta il fluido oltre al fatto di lavorare a -42 kPa



meglio essere un granello di pepe che una cacca d'asino
Ottavo





postato il:
24.03.2019, alle ore 19:54
No non è assolutamente top secret.
La misura che devo fare è semplicissima.
Si tratta di misurare la portata di un liquido che riempe un recipiente e ricavare dei dati statistici.
Le tre variabili che dovevo salvare sono:

1) Volume del recipiente
2) Peso specifico del fluido
3) peso del contenitore

Inoltre ci sono vari accessori come la misura della temperatura del fluido, dell'ambiente, una piccola pompa, la ventilazione, un led bicolore, un encoder che serve per selezionare il menu e le varie opzioni e un display lcd 4x20

Niente di trascendentale



detesto citazioni, massime e aforismi nella firma
picmicro675




una ogni 10 livelli


postato il:
25.03.2019, alle ore 05:44
Ottavo:
In assembly no, oltre a non essere mai stato bravo, ormai sono troppo arrugginito

Se dici che sei arrugginito, magari ti ricordi le trasmissioni del Maestro Manzi ``Non è mai troppo tardi`` .

Tanto per dire che le attività corporee hanno effetti benefici, anche quelle celebrali. Poi mi pare che ovviamente si raggiunge un punto che la memoria è piena e si perde qualcosa.

A parte il preambolo. L' assembly c'è sempre nei fogli dati del micro in questione, come le spiegazioni per poter farne un buon uso. Io lo consulto e faccio delle verifiche su cosa il caro compilatore sta traducendo da un linguaggio all'altro. In fondo tutti i linguaggi ad alto livello passano dall'assembler che infine viene compilato da MPASM o compatibile (come gpasm, FOSS). Certo che implica anche di leggere il manuale del MPASM. Tant'è che non ho ancora capito bene quello che fa XC nella sua compilazione segmentata.

Concludo nel dire che con gli AVR (o quello che offre Arduino con wiring) sarebbe stato una altra avventura e magari la risoluzione del caso in modo più sbrigativo.



Anno nuovo, forum nuovo.
Mi sa che lascio.
segui questo thread con grixFC, per questa funzione devi aver installato il software grixFC

torna su
     

Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito




 







 
 
indietro | homepage | torna su copyright © 2004/2024 GRIX.IT - La community dell'elettronica Amatoriale