Go Down

Topic: Problema seriale - Overflow dopo diverso tempo (Read 232 times) previous topic - next topic

mancio

Ho un problema con un programma in Arduino. Io ho montato sul mio arduino diversi sensori e questi dati vengono inviati su un modulo gsm che comunica con arduino con una seriale software.

Dopo qualche ora di funzionamento il programma si "blocca" , cioè che vengono stampati una seria considerevole di carattari strani (sembra una seria di comandi casuali del modulo gsm) e poi l'arduino si resetta e non riesce piu a riprendere il programma nel modo "normale" bloccando l'invio dei dati.

Cosa potrebbe essere?? c'è un modo per svuotare il buffer della seriale software??

gpb01

Usi variabili di tipo "String" ? Le riassegni frequentemente ? Perché sembrerebbe un problema di memoria ...

Guglielmo

P.S. : Non credo che la SoftwareSerial c'entri qualche cosa ...
Search is Your friend ... or I am Your enemy !

MasterPi

Il tuo sembrerebbe quasi un problema di RAM. Innanzitutto posta il codice, potrei sbagliarmi
Per svuotare il buffer seriale prima si utilizzava la famosa funzione Serial.flush() adesso invece mi pare abbia cambiato mododi funzionare. Per il momento credo che il miglior modo per svuotare il buffer seriale sia di leggere man mano i dati dal buffer e perderli assegnandoli "a vuoto" a una variabile byte:
Code: [Select]

byte val;
while(Serial.available())
   val = Serial.read();

MasterPi


Usi variabili di tipo "String" ? Le riassegni frequentemente ? Perché sembrerebbe un problema di memoria ...

Guglielmo

P.S. : Non credo che la SoftwareSerial c'entri qualche cosa ...

Caspita non mi ero accorto che avevi risposto :)

Go Up