Go Down

Topic: Sviluppo e gestione delle FAQ (Read 2 times) previous topic - next topic

nid69ita

#30
Jun 14, 2013, 10:21 am Last Edit: Jun 14, 2013, 10:23 am by nid69ita Reason: 1

La 2 è lunga da trattare, nei libri ci sono dedicate decine di pagine, ma se consideri l'uso dei puntatori


Secondo me un primo consiglio ai neofiti è che la memoria di Arduino è poca (2K su uno e 8K su mega).
Questo a volte non lo capiscono neppure i programmatori che passano da PC (con molti Gb) a micro.
Poi di preferire i vettori di caratteri (stringhe) all'oggetto String in quanto pesante per i micro.
Poi di lavorare con gli elementi del vettore usando le quadre, ovvero tralasciare inizialmente i puntatori.
Poi un elenco di funzioni utili per lavorare con le stringhe (vettori di caratteri)
esempio:
Esistono funzioni molto più leggere per lavorare con i vettori di caratteri (stringhe) rispetto a String.
- strlen(v) ti dice quanti caratteri ci sono nel vettore (cerca il carattere fine stringa, '\0')
- sizeof(v) ti dice il numero di celle (ricorda   vet[10]  le celle vanno da 0-9)
- memset(v,quanti,valore) per azzerare tutte le celle  es. memset(v,sizeof(v),'\0');
- strncpy() per copiare n caratteri da vettore a vettore es. strncpy(dest,sorg,10);   10 char da sorg a dest
- strcmp() per confronto fra 2 vettori di caratteri  (strncmp() per limitare il numero di caratteri)
- isdigit() per sapere se una cella è una cifra, isalpha() se è una lettera
- passi in rassegna ogni cella con un semplice ciclo for e le parentisi quadre:
Code: [Select]

for(int i=0;i<1000;i++)
{ if(v[i]=='X')
 { // trovato X nel vettore v in cella numero i
 }
}

- conversione lower/upper case cella per cella con isupper()/islower() ti dicono se è già in ucase o lcase, poi basta aggiungere o togliere 32
('A' ovvero 65+32= 97 ovvero 'a')   oppure usi toupper()/tolower() ma solo 1 cella alla volta.
- snprintf  accenni a come si usa

Credo che un sunto del genere (scritto meglio, avevo 5 in italiano) potrebbe aiutare
my name is IGOR, not AIGOR

nid69ita

Un altro argomento da FAQ mi sembra (almeno in settimana 3 richieste) su come mandare via seriale dati da arduino a processing o comunque ad un programma che stà su PC attraverso la seriale. Che ne dite?
my name is IGOR, not AIGOR

leo72

Le FAQ devono essere una specie di "primo soccorso". Mi sembra snaturare la funzione stessa delle FAQ infilarci dentro lezioni di programmazione avanzata, tipo l'uso delle funzioni sulle stringhe suggerite da nid.
Mio modesto punto di vista, s'intende  ;)

nid69ita


Le FAQ devono essere una specie di "primo soccorso". Mi sembra snaturare la funzione stessa delle FAQ infilarci dentro lezioni di programmazione avanzata, tipo l'uso delle funzioni sulle stringhe suggerite da nid.
Mio modesto punto di vista, s'intende  ;)


Effettivamente troppe info in una sola voce. Magari da quello che ho scritto trarre più FAQ ?
my name is IGOR, not AIGOR

leo72

Se uno vuole imparare la programmazione:
1) ricorre al Reference del sito
2) si scarica una guida del C
3) si compra un libro.

Le FAQ servono per soluzioni veloci a problemi ricorrenti. Un problema ricorrente è la seriale "tappata" che impedisce l'invio di un nuovo sketch.
Insomma le FAQ servono per questo genere di info.

nid69ita

Un qualcosa tipo "convertire da stringa a numero" e viceversa, ad esempio? Questo mi sembra sia stata una domanda posta spesso.
my name is IGOR, not AIGOR

leo72

Sì.
Oppure ad esempio come spedire un numero via seriale.

MauroTec

#37
Jun 15, 2013, 12:10 am Last Edit: Jun 15, 2013, 12:12 am by MauroTec Reason: 1
Spero domenica di poter gestire queste FAQ.

Si come ha detto leo la FAQ mira ad ottenere le prime risposte dirette univoche e banali per superare un ostacolo, purtroppo quando si parla di linguaggi di programmazione di univoco c'è poco, se non non usare int se puoi usare byte ecc, ma appena il malcapitato fa una operazione da cui si aspetta il risultato float ma questo invece è intero o 0.0 io non saprei come creare una FAQ per evitare che ciò possa accadergli.

Ho come una sensazione che manca una FAQ che riguarda Leonardo (non da vinci), qualcosa che riguarda la seriale, ma non ho la leonardo.

Ciao.

Dimenticavo la FAQ su quale ATmega comprare, vergine o con bootloader e il collegamento con la guida di menniti.
AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

leo72


Si come ha detto leo la FAQ mira ad ottenere le prime risposte dirette univoche e banali per superare un ostacolo, purtroppo quando si parla di linguaggi di programmazione di univoco c'è poco, se non non usare int se puoi usare byte ecc, ma appena il malcapitato fa una operazione da cui si aspetta il risultato float ma questo invece è intero o 0.0 io non saprei come creare una FAQ per evitare che ciò possa accadergli.

Secondo me questo ricade nel campo della programmazione.

Quote

Ho come una sensazione che manca una FAQ che riguarda Leonardo (non da vinci), qualcosa che riguarda la seriale, ma non ho la leonardo.

Io ho la Leonardo, se spieghi il tuo dubbio vedo se ti posso aiutare  ;)


Frankq_it

Buon giorno a tutti
Io ho programmato per molti  anni, adesso lo faccio solo per piacere.
Da quello che leggo nei post vi sono problemi di programmazione, di elettronica e di pigrizia.
Una FAQ è una risposta veloce ad problema hardware e software ben preciso.
Qui servono dei Reference e dei Tutorial in italiano, e cognizioni di elettronica maggiori.
Molti problemi hardware sono riconducibili al fatto di alimentare i circuiti tramite la porta USB! Ci vuole un alimentatore esterno da almeno 1 A. Imparare a saldare senza fare corti circuiti fra i piedini. Procurarsi un minimo di strumentazione e imparare ad usarla.
Nel mondo del Tutto subito   nessuno vuole pensare troppo e il forum è lì!

Franco

nid69ita

Un problema che capita a molti con ethernet shield, fanno pagine web grosse che di sicuro usano tanta ram perchè non utilizzano la funzione F().
my name is IGOR, not AIGOR

Go Up