In altri linguaggi lo facevo usavo un puntatore di byte (detipizzato... se si puo' dire).
In arduino c'e' lo shift e i vari low/highbyte ma non mi sembrerebbe elegante utilizzarli.
Chiarisco meglio il problema: ho + tipi di variabili delle quali conosco la dimensione in byte,
avrei necessita di passare queste variabili byte per byte in un array di byte adeguatamente dimensionato.
Ho provato con un puntatore di byte ma i vincoli di arduino su questi mi bloccano.
Suggerimenti? Giorgio Padoan
Metti tutte le variabili che devi trasmettere (spero che siano fisse e note a compile-time) in una struttura
A seconda di quello che ti serve leggi/scrivi le variabili o i singoli byte (i dati in una struttura sono contigui, al massimo con un padding fisso)
se poi ti desse fastidio usare elementi di struttura come variabili ne "copri" il nome con una define.
padoang:
Ho provato con un puntatore di byte ma i vincoli di arduino su questi mi bloccano.
Suggerimenti? Giorgio Padoan
?? Arduino si programma in linguaggio C/C++. Quindi si possono usare i puntatori.
ad esempio: (non provato, vado a memoria)
long var=12345; // per esempio
byte *p; // puntatore a byte
byte arr[4]; // 4 celle byte da riempire con i 4 byte che formano il long var
p=(byte *)&var;
for(int i=0;i<sizeof(var);i++) // da 0 a 3 sizeof(var)=4
{ arr[i]=*(p+i);
}
Beh, ma allora puoi usare una 'union', e hai due variabili di tipo differente (long e byte array, in questo caso) che condividono la stessa area di memoria, senza usare doppio spazio e castare il puntatore
Torno comunque a dire che se li tieni in una struttura i varii byte li hai già tutti li messi uno in fila all'altro...
Grazie degli interventi risolutori, Giorgio Padoan
risolutori sì, grazie per il feed-back
però come? saremmo interessati, anche per esperienza personale