Probleme si taille sketch supérieur à 14.660bytes

Bonjour, je suis en train de dévellopper une interface USB (genre K8055 de Velleman) mais avec une carte Arduino Uno R3. Je travaille avec des chaines series envoyées par le pc, dont je découpe les 3 premiers caratères pour savoir la commande (les caractères suivant étant les paramètres). Exemple: OUT13-1 :allume la led 13. RAN :lit les 6 entrées analogiques. I : affiche les infos du sketch J'ai pu constaté que tout allait à merveille tant que le programme était en dessous des +/- 14660bytes. Dès que je dépasse cette valeur, la carte ne reconnait plus les commandes à 3 caractères. Il n'y a aucun problème pour un seul caractère (comme le I). Code de débuggage employé:

coupe = dserie.substring(0,3);    //Extrait les 3 premiers caractères de la chaine serie0 recue
Serial.println(dserie);  //Affiche la chaine série recu
Serial.println(dserie.substring(0,3)); //affiche la coupe
Serial.println(coupe);     //affiche la chaine coupée
Serial.println("---");

Retour par le terminal série:

OUT13-1
OUT

---

On constate clairement que la variable coupe n'est pas bonne. Quelqu'un à une idée du problème, car là je séche...

On ne peut pas juger, on ne sait pas de quel type est coupe.

Maintenant le fait que le programme soit plus long n'est pas nécessairement la cause racine du plantage. En effet, programme plus long = plus de variables ==> occupation de plus de RAM ==> plantage. String n'est pas réputé pour économiser la mémoire donc le problème vient peut être de là aussi.

en effet, coupe est de type string, mais de là à monter aux 2k de ram…
Va falloir que je calcule çà.
Actuellement aucun problème sur Mega 2560

nono7380: en effet, coupe est de type string, mais de là à monter aux 2k de ram...

non String et pas string

string = char * ou char[] String = objet chaîne de caractères

string : utilises un emplacement fixe et de taille connue en mémoire String : allocation dynamique de mémoire avec possibilité de réallocation en cours d'utilisation ==> fractionnement de la mémoire

Bonjour,

Le code complet serait franchement utile pour savoir d'où vient le problème ;) A mon avis c'est un manque de mémoire RAM du à une mauvaise utilisation de [u]S[/u]tring