Scusami , c'è stato un miss-undestand, avevo dato per scontato che nel post iniziale avessi scritto che passavo un vettore di valori ed invece ho controllato e non c'è!!!!
E' stata una mia mancanza, lungi da me pensare che stai a dì fregnacce, ci mancherebbe!!
Facendo dei test sul simulatore ho scoperto un altra cosa strana:
//struttura dati task
struct TaskData
{
void (*functionPointer)(uint8_t *);
uint8_t * parameterPointer ;
};
TaskData t;
//setup
void setup()
{
Serial.begin(57600);
uint8_t params[2] = {2,0};
t.functionPointer = test;
t.parameterPointer = params;
Serial.print((uint16_t)t.parameterPointer,HEX);
Serial.print(" - ");
Serial.println(*t.parameterPointer,HEX);
}
//inizio del ciclo
void loop()
{
delay(250);
Serial.print((uint16_t)t.parameterPointer,HEX);
Serial.print(" - ");
Serial.println(*t.parameterPointer,HEX);
delay(250);
}
output generato :
8F4 - 2
8F4 - 5
8F4 - 5
8F4 - 5
...