walterword Inserito: 10 maggio 2006 Segnala Inserito: 10 maggio 2006 supponiamo che ho nel mio sistema dei dati La rappresentazione potrebbe essere una struttura , per esempiostruct dato{float dato1;float dato2;int dato3}dato dati;salto la parte di scrittura delle variabili .A questo punto vorrei salvare su eeprom o flash o spedire in seriale i dati Tutte queste opzioni richiedono un buffer di bytes .come potrei quindi "trasformare" la mia struttura mista in un buffer di bytes ?grazie walter
ifachsoftware Inserita: 10 maggio 2006 Segnala Inserita: 10 maggio 2006 Walter : non hai detto che cosa usi per la prova comunque se hai un micro con un sistema operativo (es : rabbit) che supporti un file system , li gestisci con le direttive standard del C tipo fopen(...) , fclose(..), fwrite(...).Mentre se non hai un file system con l'istruzione sizeof() ottieni le dimensioni della struttura ; poi punti al primo byte e scrivi per x bytes fino alla dimensione che ti ha ritornato il sizeof....Ciao
walterword Inserita: 10 maggio 2006 Autore Segnala Inserita: 10 maggio 2006 diciamo che non uso il rabbit , ma un comune micro con compilatore in COk ma la funzione sizeof restituisce il numero di bytes che compongono la struttura E poi quando li devo leggere ?Dovrebbere essere due algoritmi o funzione per scrivere e leggere tale struttura in "formato array di bytes " .Dico bene ?ciao walter
giacomo56 Inserita: 10 maggio 2006 Segnala Inserita: 10 maggio 2006 Ci vorrebbe qualcosa del genere credostruct dato { float dato1; float dato2; int dato3; } dati; byte i, datox; byte* pDati; byte size = sizeof(dati); pDati = (byte*)&dati; //Punta al primo byte di dati for(i=0; i< size; ++i) { datox = *(pDati+i); // Legge *(pDati+i) = datox; // Scrive } Ciao.
walterword Inserita: 10 maggio 2006 Autore Segnala Inserita: 10 maggio 2006 non vorrei essere antipatico ma era proprio quello che avrei voluto vedereti ringrazio giacomo
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