tutorial di programmazione non terra-terra

Salve, pur lavorando con arduino da un po' di tempo, ho ancora difficolta' nella programmazione. Ad esempio un argomento sul quale non ho trovato molto aiuto e' quello delle funzioni. In particolare il passaggio di variabili, array con dimensioni...ecc. E' vero che potrei leggermi un bel libro di C da 1000 pagine =(, ma francamente ... non ho piu' l'eta'.
Qualcuno mi sa indicare qualche bel tutorial?? Di quelli che ti spiegano step by step come si fa ad accendere un led, pero' sulla programmazione.
grazie

mah in rete non saprei se vuoi però posso darti il nome di un testo di C di 300|400 pagine...

leggiti qualcosa sui puntatori, mi sa che son loro il tuo tallone di achille :slight_smile:

HTML.it ha delle buone guide in italiano, semplicemente salta i capitoli che non ti interessano :slight_smile:

io ho imparato a programmare senza nemmeno mai guardare un libro (si forse un libro di turbo pascal oramai 6-7 anni fa)
ora programmo in c,c# e a volte java... una volta che conosci la logica è sufficiente guardare programmi gia scritti e imparare da quelli ciò che ti serve!

Per fare un'esempio... Come faccio a passare un array in una funzione? Scrivo qui di seguito un esempio:

char Stringa[20] = "topolino";
void setup(){
...
}
void loop {
....
n = myfunction(Stringa[]);
}

int myfunction(char Pippo[20]){
int k...;
....
return k;
}

vedi, un array è un puntatore. E i puntatori sono una bella bestia del C, però se li domini impari a capire tante cose.

int myfunction(char Pippo[20]) è sbagliata, probabilmente neanche compila; tu ti aspetti un array, ovvero un puntatore alla prima cella di memoria dell'array "fisico" nella ram.

quindi la versione corretta è:
int myfunction(char Pippo[])

oppure (che è la stessa identica cosa)
int myfunction(char *Pippo)

myfunction(Stringa[]); è errato, perchè [] non ha senso (o meglio, non in questo contesto); la versione corretta è myfunction(Stringa); (non chiamare le variabili con le lettere maiuscole: si confondono con le dichiarazione di oggetti...)

credimi, studiati i puntatori che fanno tanto bene all'anima :slight_smile:

OK, mi hai convinto! Però non sarebbe male un bel tutorial su questo argomento. Forse è difficile farlo senza una base solida di C?
grazie comunque

paolometeo:
Forse è difficile farlo senza una base solida di C?

diciamo che i puntatori SONO le basi del C. E che per studiarli più che buone basi di programmazione, bisogna avere una mezza idea di cosa succede "dietro le quinte", ovvero in ram