walterword Inserito: 23 ottobre 2005 Segnala Share Inserito: 23 ottobre 2005 ammettiamo di avere una struttura dati composta da vari tipi di dati , tra cui float, int ect Ipotizziamo di lavorare con un micro ed utilizzare un compialtore in C .visto e considerato che una eeprom si scrive " un byte alla volta " da un array di bytes , cosi come si spedisce un "byte alla volta " in una comunciazione per esempio seriale , come e' possibile creare una funzione che prenda (estrapolando ) tutti y bytes che compongono i dati dalla struttura .Bisognerebbe prendere un dato alal volta e creare un byte prendendo il primo byte del dato float , poi shiftare di 8 bit e creare un altro byte e via dicendo , uno per uno .Scrivere invece un ciclo for come potrebbe essere fatto tutto il discorso ?ciao walter Link al commento Condividi su altri siti More sharing options...
ifachsoftware Inserita: 23 ottobre 2005 Segnala Share Inserita: 23 ottobre 2005 Ciao Walter , come hai detto tu in eeprom si scrive un byte alla volta , quindi o hai il compilatore che fa cio' per te oppure credo che ti convenga fare due funzioni : una per la scrittura ed una per la lettura.Ciao Link al commento Condividi su altri siti More sharing options...
giacomo56 Inserita: 23 ottobre 2005 Segnala Share Inserita: 23 ottobre 2005 Il programma seguente, compilato con il C18 della Microchip e simulato con MPLAB, prende un byte alla volta dalla struttura dati e li passa a una funzione che lo scrive sulla eeprom.typedef struct { char c; int i; } DATI; //struttura di 3 byte unsigned char size, n; void *p; //puntatore generico unsigned char byte; DATI dati = {0x11, 0x2233}; //inizializza struttura con dei valori void write(unsigned char b) { //Scrive il byte b sulla eeprom } void main (void) { p = &dati; //p punta all'inizio della struttura size = sizeof(dati); //ricava la dimensione in byte della struttura for(n=0; n<size; ++n) { byte = *(unsigned char*)p; //acquisisce un byte della struttura write(byte); p = p + 1; //incrementa puntatore } while(1); }Dovrebbe funzionare anche con i float.E' quello che cercavi? Ciao. Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 24 ottobre 2005 Autore Segnala Share Inserita: 24 ottobre 2005 sivolevo giustappunto capire come poter sviluppare una cosa del genere ed hai centrato in pieno il concetto graziewalterp.s. per Ifach : se leggi bene il post , dico che stoi usando un compilatore in C Link al commento Condividi su altri siti More sharing options...
ifachsoftware Inserita: 24 ottobre 2005 Segnala Share Inserita: 24 ottobre 2005 per Ifach : se leggi bene il post , dico che stoi usando un compilatore in C Link al commento Condividi su altri siti More sharing options...
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