void funzione(decode_results *results) {
if (results->decode_type == SONY) {
Serial.print("val ricevuto:");
Serial.println(results->value, DEC);
val = (results->value, DEC); //Ho tentato così
val = map ( val , 0 , 1023 , 0 , 255 );
// Serial.println(val);
analogWrite(ledPin1, val);
si tratta di ricezione IR. Non riesco ad assegnare alla variabile val il valore di (results->value, DEC);
Ho provato anche con val = int (results->value, DEC);
Forse perchè c'è un puntatore.
Questo mi serve per variare la luminosità di un led.
Se magari spendessi un po' di tempo a STUDIARE e a guardare come funziona la Serial.print scopriresti che ... la parolina DEC serve ad indicare alla Serial.print che si vuole la stampa del risultato in decimale e che quindi non ha nulla a che fare con operazioni di assegnazione del valore.
Adesso lo so e si può stampare anche in hex ma allora come faccio ad assegnare quel valore decimale alla variabile, dove vado a prendere quel numero decimale?
Abbiate pazienza!
results è un puntatore ad una struct o a un oggetto.
Se fosse direttamente una struct, accedi a un singolo elemento che lo compone con il punto es. results.value
Essendo puntatore il C richiede come sintassi l'uso del -> quindi results->value ovvero attraverso un puntatore accedo ad uno degli elementi della struct; l'elemento si chiama value.