Serial

Ciao a tutti

Ho la necessità di debaggare un sorgente che ho scaricato dal web e ho purtroppo avuto non pochi problemi a farlo.

All'interno della funzione loop() viene richiamata una funzione presente
all'interno di un file con estensione .c presente all'interno della cartella delle librerie.

Visto che l'IDE di Arduino non ha alcun supporto al debug ho pensato di ricorrere alla stampa di una stringa di testo sul terminale tramite un comando del tipo : Serial.println("Passo 1");

Purtroppo questo comando funziona solo dentro il file principale e anche se aggiunto nel file contenete la funzione che mi interessa durante la compilazione mi viene detto che non è definito il comando.

Esiste un modo per far andare Serial.println(.... dentro i file esterni oppure un sistema alternativo ?

Ringrazio anticipatamente
Drake

Se copi la funzione che é presente nel file .c nel tuo sketch dovrebbe funzionare.
Scrivici quale programma é in modo che possiamo provare ( il link al sito dove l' hai scaricato)
ciao Uwe

Allora ...... il programma princiapale è un file .PDE nel quale una volta impostato il valore del Baudrate è possibile inviare dei testi ad un terminale ( su di un pc) tramite il comando :
Serial.println("Passo 1");
Questo è la base della programmazione Arduino ....

Adesso torniamo al mio problema. Ho recentemente acquistato il "microSD Shield" per poter leggere e scrivere su di una microSD. http://www.robot-italy.com/product_info.php?products_id=1460
Da questo link oltre al pdf con gli schemi c'è anche un pacchetto Zip con degli esempi : http://www.sparkfun.com/Code/FAT16.zip

Per far funzionare il tutto ho dovuto creare la cartella fat16 dentro la ca cartella library di Arduino in modo che i due file di esempio potessero essere compilabili. Magari è qua che sbaglio.

Mi sono concentrato sull'esempio di scrittura : FAT16_WriteExample.pde
Questo Esempio pare compili senza problema ma in realtà una volta inserito in Arduino non funziona : entra nella funzione sd_raw_init() ma non ne esce più.

Io ho la necessità di debaggare all'interno della funzione ma il comando Serial.println("Passo 1"); non viene accettato.....
Purtroppo non essendo pratico di Arduino avrei bisogno di qualche dritta.

Ho la necessità di inviare del testo ad un terminale esterno ma come si fa? !

Saluti
Drake

ciao, ho anch'io quella shield a casa.
devo aver porvato l'esempio di scrittura e a memoria direi che non avvevo avuto problemi. comuqnue questa sera (al massimo domani) faccio qualche prova e vedo se mi si presenta il tuo stesso problema

Grazie

ciao,
purtroppo mi ricordavo bene: mi funziona.
Però ho dovuto aggiungere di nuovo la libreria perché ho scaricato la nuova versione dell'IDE. Quello che ho fatto è stato di estrarre lo zip dentro la cartella arduino-019/libraries e basta (non ho creato cartelle).
Dopo aver fatto l'upload ho aperto la Serial monitor e puoi vedere il risultato sulla sinistra
http://img411.imageshack.us/img411/6812/usd.png
sulla destra il file creato nella microSD.

Mi potresti dire le caratteristiche della microSD con cui hai fatto la prova?

Che marca è ? Quanto spazio ha ?. Partizione Fat16 o Fat32?
Hai fatto una o eventualmente più partizioni ?
Che marca è ?

Grazie
Drake

Ho capito perchè non mi funzionava.
Io ho una microSD da 4G e quindi essendo una SDHC va abilitata una costante. Fatta questa modifica tutto magicamente ha iniziato a funzionare :slight_smile:

Grazie di tutto
Saluti
Drake