Problemi con il delay

Ho due problemi: Ho convertito il tempo di campionamento da char a int, però int funziona fino a 32000. Se supero i 32000 il delay nn funziona perchè mi in valore negativo. Come si fa a convertirlo in long? Ho provato a moltiplicare il valore del tempo per 1000 ed inserirlo in secondi ma anche qui funziona fino a 30. Perchè? Grazie per la collaborazione

ciao

definisci unsigned long la variabile che passi alla funzione delay, come da documentazione: http://arduino.cc/en/Reference/delay

forse specificando meglio cosa vuoi fare un pezzetto di sketch potrebbe essere di aiuto, magari sbagli metodo ....

Ho convertito il tempo di campionamento da char

questi char cosa sono? da dove arrivano?

ciao

i char arrivano dalla scheda ethernet montata su arduino, arduino riceve un carattere alla volta quindi mi sono costruito un array di caratteri ed infine l'ho trasformato in int attraverso la funzione atoi(). Però se cambio int con long non funziona, cioè lo prende come int. Quindi dovrei trovare un modo per convertire da int a unsigned long oppure convertire da char[] a unsigned long. Voi che ne dite? Grazie

Dico che se non ci fai vedere il codice, possiamo stare qui a ragionare tutto il giorno :P Le conversioni il compilatore le fa in automatico, ossia se assegni ad un unsigned long il valore di un char, non è che l'unsigned long diventa di tipo char. E non può neanche diventare di tipo signed integer... quindi c'è qualcosa che non va nel codice ;)

Ciao

per convertire char to long devi usare atol() e non atoi() (atol = ascii to long)

Risolto con atol().
Grazie per la collaborazione